#!/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 [https://site] set -euo pipefail HOST="${1:?usage: verify-ledgers.sh [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"