Files
vm-cc/20-collectors/collect_ledger_verify.sh
2025-12-27 02:14:14 +00:00

55 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
OUT_DIR="${1:?usage: collect_ledger_verify.sh <out_dir>}"
mkdir -p "$OUT_DIR"
CANDIDATES=(
"ledger"
"ledger-cli"
"../vm-ledger/target/release/ledger"
"../vm-ledger/target/release/ledger-cli"
"../vm-ledger/target/debug/ledger"
"../vm-ledger/target/debug/ledger-cli"
"../vm-ledger/bin/ledger"
"../vm-ledger/bin/ledger-cli"
"../vm-ledger/ledger"
"../vm-ledger/ledger-cli"
)
LEDGER_BIN=""
for c in "${CANDIDATES[@]}"; do
if [[ "$c" == "ledger" || "$c" == "ledger-cli" ]]; then
if command -v "$c" >/dev/null 2>&1; then
LEDGER_BIN="$c"
break
fi
else
if [[ -x "$c" ]]; then
LEDGER_BIN="$c"
break
fi
fi
done
LEDGER_DIR="${VMCC_LEDGER_DIR:-../vm-ledger/log}"
if [[ ! -d "$LEDGER_DIR" ]]; then
cat > "$OUT_DIR/ledger_verify.json" <<JSON
{"collected": false, "reason": "ledger dir not found: $LEDGER_DIR"}
JSON
exit 0
fi
if [[ -z "$LEDGER_BIN" ]]; then
cat > "$OUT_DIR/ledger_verify.json" <<'JSON'
{"collected": false, "reason": "ledger CLI not found"}
JSON
exit 0
fi
if ! "$LEDGER_BIN" verify --dir "$LEDGER_DIR" --format json > "$OUT_DIR/ledger_verify.json" 2> "$OUT_DIR/ledger_verify.stderr"; then
cat > "$OUT_DIR/ledger_verify.json" <<JSON
{"collected": false, "reason": "$(basename "$LEDGER_BIN") verify failed"}
JSON
fi