#!/usr/bin/env bash set -euo pipefail SOURCE="${BASH_SOURCE[0]}" while [[ -L "$SOURCE" ]]; do DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)" SOURCE="$(readlink "$SOURCE")" [[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" done ROOT="$(cd -P "$(dirname "$SOURCE")" && pwd)" usage() { cat < Resume a specific existing session vimax tui --new-session Same as: vimax tui new vimax tui --session Same as: vimax tui resume EOF } if [[ $# -lt 1 ]]; then usage exit 2 fi command="$1" shift case "$command" in tui) tui_args=() case "${1:-}" in new) tui_args+=("--new-session") shift ;; resume|old) shift if [[ -n "${1:-}" && "${1:-}" != --* ]]; then tui_args+=("--session" "$1") shift fi ;; --new-session) tui_args+=("--new-session") shift ;; --session) if [[ -z "${2:-}" ]]; then echo "error: --session requires a session id" >&2 exit 2 fi tui_args+=("--session" "$2") shift 2 ;; "") ;; --help|-h|help) usage exit 0 ;; *) echo "error: unknown tui mode: $1" >&2 usage >&2 exit 2 ;; esac if [[ $# -gt 0 ]]; then tui_args+=("$@") fi if [[ ! -x "$ROOT/ui/node_modules/.bin/tsx" ]]; then echo "error: ui dependencies are missing. Run: cd $ROOT/ui && npm install" >&2 exit 2 fi exec "$ROOT/ui/node_modules/.bin/tsx" "$ROOT/ui/src/cli.tsx" ${tui_args[@]+"${tui_args[@]}"} ;; --help|-h|help) usage ;; *) echo "error: unknown command: $command" >&2 usage >&2 exit 2 ;; esac