Files
trakqr/scripts/dev-tmux.sh
2026-01-27 13:47:56 -05:00

31 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
if ! command -v tmux >/dev/null 2>&1; then
echo "tmux is required but was not found in PATH." >&2
exit 1
fi
repo_root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
session_name="trakqr"
if [[ -n "${TMUX-}" ]]; then
current_session=$(tmux display-message -p "#S")
tmux new-window -t "${current_session}" -n api "cd \"${repo_root}\" && dotnet run --project src/api"
tmux new-window -t "${current_session}" -n frontend "cd \"${repo_root}\"/src/frontend && npm run dev"
tmux select-window -t "${current_session}:api"
echo "Added windows 'api' and 'frontend' to session '${current_session}'."
exit 0
fi
if tmux has-session -t "${session_name}" 2>/dev/null; then
echo "Session '${session_name}' already exists. Attaching..."
tmux attach -t "${session_name}"
exit 0
fi
tmux new-session -d -s "${session_name}" -n api "cd \"${repo_root}\" && dotnet watch --project src/api"
tmux new-window -t "${session_name}" -n frontend "cd \"${repo_root}\"/src/frontend && npm run dev"
tmux attach -t "${session_name}"