2026-03-27 22:12:46 -07:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# Exit 0 if every submodule has a clean working tree (no modified/untracked files).
|
|
|
|
|
# Use in CI or after merges: bash scripts/verify/submodules-clean.sh
|
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
|
|
|
# Set SKIP_EXIT=1 to report dirty submodules without failing.
|
2026-03-27 22:12:46 -07:00
|
|
|
set -euo pipefail
|
|
|
|
|
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
|
|
|
cd "$ROOT"
|
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
|
|
|
SKIP_EXIT="${SKIP_EXIT:-0}"
|
2026-03-27 22:12:46 -07:00
|
|
|
|
|
|
|
|
tmp="$(mktemp)"
|
|
|
|
|
trap 'rm -f "$tmp"' EXIT
|
|
|
|
|
|
|
|
|
|
dirty=0
|
|
|
|
|
while IFS= read -r subpath; do
|
|
|
|
|
[[ -z "$subpath" ]] && continue
|
|
|
|
|
if ! git -C "$ROOT/$subpath" rev-parse --git-dir >/dev/null 2>&1; then
|
|
|
|
|
continue
|
|
|
|
|
fi
|
|
|
|
|
out="$(git -C "$ROOT/$subpath" status --porcelain 2>/dev/null || true)"
|
|
|
|
|
if [[ -n "$out" ]]; then
|
|
|
|
|
dirty=1
|
|
|
|
|
printf '%s\n' "=== $subpath ===" >>"$tmp"
|
|
|
|
|
printf '%s\n' "$out" >>"$tmp"
|
|
|
|
|
fi
|
|
|
|
|
done < <(git config --file .gitmodules --get-regexp '^submodule\..*\.path$' | awk '{print $2}' | sort -u)
|
|
|
|
|
|
|
|
|
|
if (( dirty )); then
|
|
|
|
|
echo "submodules-clean: dirty submodule working trees:" >&2
|
|
|
|
|
cat "$tmp" >&2
|
chore: sync docs, config schemas, scripts, and meta task alignment
- Institutional / JVMTM / reserve-provenance / GRU transport + standards JSON
- Validation and verify scripts (Blockscout labels, x402, GRU preflight, P1 local path)
- Wormhole wiring in AGENTS, MCP_SETUP, MASTER_INDEX, 04-configuration README
- Meta docs, integration gaps, live verification log, architecture updates
- CI validate-config workflow updates
Operator/LAN items, submodule working trees, and public token-aggregation edge
routes remain follow-up (see TODOS_CONSOLIDATED P1).
Made-with: Cursor
2026-03-31 22:31:39 -07:00
|
|
|
if [[ "$SKIP_EXIT" != "1" ]]; then
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
exit 0
|
2026-03-27 22:12:46 -07:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "submodules-clean: OK (all submodules clean)"
|