#!/usr/bin/env bash
set -euo pipefail
: "${PROOF_DIR:?Set PROOF_DIR to a fresh scratch directory}"
mkdir -p "$PROOF_DIR/bin" "$PROOF_DIR/xdg"
curl -fsSL https://codeberg.org/forgejo-contrib/forgejo-cli/releases/download/v0.7.0/forgejo-cli-x86_64-linux.tar.gz -o "$PROOF_DIR/fj.tar.gz"
tar -xzf "$PROOF_DIR/fj.tar.gz" -C "$PROOF_DIR/bin"
# Start this container in a retained terminal session; stop it after the proof.
# docker run --name evidence-36290-forgejo -p 127.0.0.1:39301:3000 -e FORGEJO__server__ROOT_URL=http://127.0.0.1:39300/forgejo/ -e FORGEJO__database__DB_TYPE=sqlite3 -e FORGEJO__security__INSTALL_LOCK=true -e FORGEJO__service__DISABLE_REGISTRATION=true codeberg.org/forgejo/forgejo:16.0.3
# Run proxy.py in another retained terminal session.
docker exec -u git evidence-36290-forgejo forgejo admin user create --username alice --password synthetic-proof-password --email alice@example.invalid --admin --must-change-password=false
docker exec -u git evidence-36290-forgejo forgejo admin user generate-access-token --username alice --token-name proof --scopes all --raw > "$PROOF_DIR/token"
export XDG_DATA_HOME="$PROOF_DIR/xdg"
"$PROOF_DIR/bin/fj" --host http://127.0.0.1:39300/forgejo auth add-token < "$PROOF_DIR/token"
"$PROOF_DIR/bin/fj" auth list
"$PROOF_DIR/bin/fj" --host http://127.0.0.1:39300/forgejo whoami || true
# Run from the scenario checkout:
# T3CODE_DEV_SEED=0 T3_SCENARIO_INHERIT_ENV=XDG_DATA_HOME,T3CODE_DEV_SEED FORGEJO_PROOF_BIN="$PROOF_DIR/bin/fj" vp run scenarios:prove scripts/scenarios/forgejo-subpath-hint.e2e.ts --base a35fd811749c2b65d917652cbdb90b28d65b2e0c --head 61401c75cd0e92eed807b153ae11920370ca6133 --upload-command "ghdrop upload"
