31 lines
1.0 KiB
Bash
Executable File
31 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
OUT="$ROOT/runtime/evidence/verifier-status.json"
|
|
TMP="$OUT.tmp"
|
|
cd "$ROOT"
|
|
./scripts/mc_dod_evaluator.py > "$TMP"
|
|
python3 - "$TMP" "$OUT" <<'PY2'
|
|
import datetime
|
|
import json
|
|
import pathlib
|
|
import sys
|
|
|
|
tmp_path = pathlib.Path(sys.argv[1])
|
|
out_path = pathlib.Path(sys.argv[2])
|
|
raw = tmp_path.read_text(encoding="utf-8").strip()
|
|
data = json.loads(raw) if raw else {}
|
|
if not isinstance(data, dict):
|
|
raise SystemExit("Verifier must output a JSON object")
|
|
data.setdefault("ok", bool(data.get("status") == "DONE"))
|
|
data.setdefault("status", data.get("status", "UNKNOWN"))
|
|
data.setdefault("checkedItems", [])
|
|
data.setdefault("failedChecks", [])
|
|
data.setdefault("evidence", [])
|
|
data.setdefault("nextRecommendedItem", "")
|
|
data["updatedAt"] = datetime.datetime.now(datetime.timezone.utc).isoformat()
|
|
out_path.write_text(json.dumps(data, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
|
|
print(json.dumps(data, ensure_ascii=False))
|
|
tmp_path.unlink(missing_ok=True)
|
|
PY2
|