#!/bin/sh # Spendlight safety check: refuse any commit that would include real # statements, databases or backups. Only made-up test files under a # fixtures/synthetic/ folder may be CSV, OFX, QFX, QBO or Excel. staged=$(git diff --cached --name-only --diff-filter=ACMR) blocked=$(printf '%s\n' "$staged" \ | grep -E -i '^(samples|data|backups)/|\.(csv|ofx|qfx|qbo|xls|xlsx|sqlite|sqlite3|db)$' \ | grep -v -E '^samples/README\.md$|(^|/)fixtures/synthetic/' || true) if [ -n "$blocked" ]; then echo "Commit blocked: these files look like real financial data." >&2 printf ' %s\n' $blocked >&2 echo "Statement files stay on the server. Test files belong in fixtures/synthetic/." >&2 exit 1 fi