#!/bin/sh # tmux-npmStart.sh: Run 'npm start' on a new tmux window # # Usage: tmux-npmStart.sh [-r] usageMessage="Usage: ${0} [-r]" error() { printf '%s error: %s\n' "$0" "$*" >&2 } errorAndUsage() { printf '%s error: %s\n%s\n' "$0" "$*" "$usageMessage" >&2 } window=9 name='npm start' remainOnExit='' # Process options while getopts ':r' opt; do case $opt in 'r' ) remainOnExit='y' ;; '?' ) printf '%s\n' "$usageMessage" >&2 exit 1 esac done shift $((OPTIND - 1)) if tmux list-windows | grep -q "^${window}: ${name}"; then tmux kill-window -t "$window" else if [ -z "$remainOnExit" ]; then tmux new-window -db -t "$window" -n "$name" 'npm start' else tmux new-window -b -t "$window" -n "$name" 'tmux set -w remain-on-exit on; npm start' fi fi