Files
uupl-smart-contract/tools/reset-local.sh
T

46 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd -P)
# shellcheck source=process-lib.sh
source "$ROOT/tools/process-lib.sh"
remove_exact() {
local path=$1
if [[ -e "$path" ]]; then
rm -f -- "$path"
printf 'Removed %s\n' "${path#"$ROOT/"}"
fi
}
remove_local_manifest() {
local path=$1
[[ -e "$path" ]] || return 0
if node -e 'const fs=require("fs"); const value=JSON.parse(fs.readFileSync(process.argv[1],"utf8")); process.exit(value && value.network === "anvil" && value.chainId === 31337 ? 0 : 1)' "$path" 2>/dev/null; then
remove_exact "$path"
else
printf 'Preserved non-local or invalid manifest %s\n' "${path#"$ROOT/"}"
fi
}
demo_stop_recorded "$ROOT" vite
demo_stop_recorded "$ROOT" anvil
remove_exact "$ROOT/.demo/anvil.pid"
remove_exact "$ROOT/.demo/anvil.start"
remove_exact "$ROOT/.demo/anvil.pgid"
remove_exact "$ROOT/.demo/anvil.log"
remove_exact "$ROOT/.demo/vite.pid"
remove_exact "$ROOT/.demo/vite.start"
remove_exact "$ROOT/.demo/vite.pgid"
remove_exact "$ROOT/.demo/vite.log"
remove_local_manifest "$ROOT/deployments/pending.json"
remove_local_manifest "$ROOT/deployments/anvil.json"
remove_local_manifest "$ROOT/deployments/active.json"
remove_local_manifest "$ROOT/web/public/deployment.json"
remove_exact "$ROOT/web/src/generated/contracts.ts"
rmdir -- "$ROOT/.demo" 2>/dev/null || true
printf '%s\n' 'Local generated state is reproducible with make demo-local.'