#!/usr/bin/env bash
# bin/railiance — generic rail dispatcher; implementation lives in tools/cmd/*
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PATH="${ROOT}/tools/cmd:${PATH}"

usage() {
  cat <<'EOF'
Usage: bin/railiance <command> [args]

Commands:
  create-overlay Scaffold a Railiance overlay repo for an upstream app
  run           Run Stage 1 local validation from railiance/app.toml
  deploy        Plan/apply Stage 2 canary deployment
  observe       Plan/run Stage 2 observation checks
  promote       Plan/apply Stage 3 stable promotion
  rollback      Plan/apply rollback to previous stable
  help          Show this help
EOF
}

cmd="${1:-help}"
shift || true

case "$cmd" in
  help) usage ;;
  create-overlay) bash "$ROOT/tools/create_railiance_overlay_repo.sh" "$@" ;;
  run) exec railiance-run "$@" ;;
  deploy) exec railiance-stage2 deploy "$@" ;;
  observe) exec railiance-stage2 observe "$@" ;;
  promote) exec railiance-stage3 promote "$@" ;;
  rollback) exec railiance-stage3 rollback "$@" ;;
  *) echo "Unknown command: $cmd" >&2; usage; exit 2 ;;
esac
