29 lines
1.3 KiB
Bash
29 lines
1.3 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Validate 3FR reserve provenance package JSON files against schemas/reserve-provenance-package.schema.json
|
||
|
|
set -euo pipefail
|
||
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||
|
|
PKG="$ROOT/config/reserve-provenance-package"
|
||
|
|
SCHEMA="$PKG/schemas/reserve-provenance-package.schema.json"
|
||
|
|
|
||
|
|
if ! command -v check-jsonschema &>/dev/null; then
|
||
|
|
if [[ "${SCHEMA_STRICT:-0}" == "1" ]]; then
|
||
|
|
echo "error: check-jsonschema not found; pip install check-jsonschema" >&2
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
for f in "$PKG"/legal/*.json "$PKG"/settlement/*.json "$PKG"/provenance/*.json "$PKG"/bank/*.json "$PKG"/kyt/*.json "$PKG"/reconciliation/*.json "$PKG"/reserve/*.json "$PKG"/governance/*.json; do
|
||
|
|
[[ -f "$f" ]] || continue
|
||
|
|
[[ "$f" == *.example.json ]] && continue
|
||
|
|
python3 -m json.tool "$f" >/dev/null
|
||
|
|
echo "OK parse $f"
|
||
|
|
done
|
||
|
|
echo "skip: check-jsonschema not installed (JSON parse only)"
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
for f in "$PKG"/legal/*.json "$PKG"/settlement/*.json "$PKG"/provenance/*.json "$PKG"/bank/*.json "$PKG"/kyt/*.json "$PKG"/reconciliation/*.json "$PKG"/reserve/*.json "$PKG"/governance/*.json; do
|
||
|
|
[[ -f "$f" ]] || continue
|
||
|
|
[[ "$f" == *.example.json ]] && continue
|
||
|
|
check-jsonschema --schemafile "$SCHEMA" "$f"
|
||
|
|
done
|
||
|
|
echo "OK reserve-provenance-package (10 JSON files + schema)"
|