#!/usr/bin/env sh # # Shared dispatcher used by start.sh, stop.sh, and # bootstrapper/generate_supabase_keys.sh. # # Picks `uv` when available (fast venv resolution, locked deps), falls # back to system `python3` otherwise. Usage: # # sh bootstrapper/_run.sh [args...] # # The path is interpreted relative to this file's directory # (i.e. bootstrapper/), so callers can pass plain `start.py`, `stop.py`, # or `generate_supabase_keys.py`. set -e if [ $# -lt 1 ]; then echo "Usage: $0 [args...]" >&2 exit 64 fi SCRIPT_REL="$1" shift # Resolve the bootstrapper directory (this script's parent). # CDPATH= keeps cd from echoing a path into the captured value. SELF_DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)" if command -v uv >/dev/null 2>&1; then # Banner to stderr: stdout must stay clean so `