#!/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 [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