#!/usr/bin/env bash
set -euo pipefail

REQUIRED_EMAIL="decko@redhat.com"

echo "=== pre-commit: checking email ==="
EMAIL=$(git config user.email)
if [ "$EMAIL" != "$REQUIRED_EMAIL" ]; then
    echo "ERROR: git user.email is '$EMAIL', expected '$REQUIRED_EMAIL'"
    echo "Fix: git config user.email $REQUIRED_EMAIL"
    exit 1
fi

echo "=== pre-commit: ruff check ==="
uv run ruff check src/ tests/ --fix
RUFF_EXIT=$?
if [ $RUFF_EXIT -ne 0 ]; then
    echo "ERROR: ruff check failed"
    exit 1
fi

echo "=== pre-commit: ruff format ==="
uv run ruff format src/ tests/
CHANGED=$(git diff --name-only src/ tests/)
if [ -n "$CHANGED" ]; then
    echo "Reformatted files — staging changes:"
    echo "$CHANGED"
    git add $CHANGED
fi

echo "=== pre-commit: ty check ==="
uv run ty check src/raki/ 2>&1 || true

echo "=== pre-commit: all checks passed ==="
