#!/usr/bin/env bash
# Pre-commit hook dispatcher. Runs modular checks from tooling/.
# Installed via: git config core.hooksPath .config/hooks
set -euo pipefail

REPO_ROOT="$(git rev-parse --show-toplevel)"
ERRORS=0

run_check() {
    local script="$1"
    local label="$2"
    if [ -x "$REPO_ROOT/$script" ]; then
        if ! "$REPO_ROOT/$script"; then
            ERRORS=$((ERRORS + 1))
        fi
    else
        echo "pre-commit: WARNING — $label skipped ($script not found or not executable)"
        echo "  Run 'make setup' or check that $script exists and is executable."
    fi
}

# --- Checks ---
run_check "tooling/check-fact-ids" "fact_id validation"
run_check "tooling/check-decision-ids" "decision ID duplication"

if [ "$ERRORS" -gt 0 ]; then
    echo ""
    echo "pre-commit: $ERRORS check(s) failed. Commit aborted."
    exit 1
fi
