#!/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}"