#!/usr/bin/env bash
set -euo pipefail
# Run from a disposable checkout of current main with dependencies installed.
# Place this script, forge-fixture.mjs, and pr-watch-after-failure.e2e.ts together.
assets=$(cd -- "$(dirname -- "$0")" && pwd)
export PROOF_SCRATCH=$(mktemp -d)
export GH_CONFIG_DIR="$PROOF_SCRATCH/gh"
export GH_TOKEN=synthetic-scenario-token
export T3CODE_DEV_SEED=0
mkdir -p "$GH_CONFIG_DIR"
printf 'http_unix_socket: %s/github.sock\n' "$PROOF_SCRATCH" > "$GH_CONFIG_DIR/config.yml"
cp scripts/e2e.config.ts "$PROOF_SCRATCH/e2e.config.original.ts"
cp "$assets/pr-watch-after-failure.e2e.ts" scripts/scenarios/pr-watch-after-failure.e2e.ts
python3 - <<'PY'
p='scripts/e2e.config.ts'
s=open(p).read()
if 'inheritEnv: ["GH_CONFIG_DIR"' not in s:
    s=s.replace('executable: resolved.node,','executable: resolved.node,\n          inheritEnv: ["GH_CONFIG_DIR", "GH_TOKEN", "T3CODE_DEV_SEED"],')
s=s.replace('timeout: 300_000,','timeout: 600_000,')
open(p,'w').write(s)
PY
node "$assets/forge-fixture.mjs" &
fixture_pid=$!
trap 'kill "$fixture_pid" 2>/dev/null || true; cp "$PROOF_SCRATCH/e2e.config.original.ts" scripts/e2e.config.ts' EXIT
head=abbde4d1a5fe1cbc6b6c5d0bcd5f5d79aca21643
base=$(git merge-base origin/main "$head")
vp run scenarios:prove scripts/scenarios/pr-watch-after-failure.e2e.ts --base "$base" --head "$head" --upload-command 'ghdrop upload'
