21 lines
531 B
Text
21 lines
531 B
Text
|
#!/usr/bin/env bash
|
||
|
set -eo pipefail
|
||
|
|
||
|
nr="@app-${1}"
|
||
|
shift
|
||
|
|
||
|
pane="$(tmux show -vg ${nr} || true)"
|
||
|
if [[ -n "${pane}" ]] && tmux has-session -t "${pane}" ; then
|
||
|
if tmux list-panes -F "#{pane_id}" | grep "^${pane}\$" >>/dev/null ; then
|
||
|
# Pane is on this window. Focus it and exit.
|
||
|
exec tmux select-pane -t "${pane}"
|
||
|
fi
|
||
|
else
|
||
|
# App pane does not exist, so create a new window.
|
||
|
pane=$(tmux new-window -d -P -F '#{pane_id}' "$@")
|
||
|
tmux set -g "${nr}" "${pane}"
|
||
|
fi
|
||
|
|
||
|
# Swap active pane for app
|
||
|
tmux swap-pane -s "${pane}"
|