Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up
14 lines
640 B
Bash
Executable File
14 lines
640 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# The determinism gate: fetch every production ledger and replay it with the
|
|
# LOCAL engine, comparing each room with what the server shows. A ledger the
|
|
# new engine replays differently would rewrite a game in progress when the
|
|
# server restarts, so this runs before every deploy.
|
|
# deploy/verify-ledgers.sh <droplet-ip-or-host> [https://site]
|
|
set -euo pipefail
|
|
HOST="${1:?usage: verify-ledgers.sh <droplet-ip-or-host> [https://site]}"
|
|
SITE="${2:-https://__DOMAIN__}"
|
|
DIR="$(mktemp -d)"
|
|
trap 'rm -rf "$DIR"' EXIT
|
|
rsync -az "root@$HOST:/var/lib/__SLUG__/rooms/" "$DIR/"
|
|
npx tsx deploy/replay-ledgers.ts "$DIR" "$SITE"
|