#!/usr/bin/env bash

# Check if any shell scripts were changed
if ! scripts/shellcheck/validate_shell_scripts.sh; then
    echo "Shell script validation failed. Please fix the issues before committing."
    exit 1
fi

# Validate Codex skills inventory when skill metadata changes
if git diff --cached --name-only | grep -Eq '^(skills/.*/SKILL\.md|AGENTS\.md)$'; then
    if ! bash scripts/validate_codex_skills.sh; then
        echo "Codex skill validation failed. Please fix the issues before committing."
        exit 1
    fi
fi

# Check if any Kotlin files were changed
if ! scripts/ktfmt/apply_ktfmt.sh; then
    echo "Kotlin formatting validation failed. Please fix the issues before committing."
    exit 1
fi

# Regenerate Xcode project if any iOS files were changed
if git diff --cached --name-only | grep -q '^ios/'; then
    if command -v xcodegen >/dev/null 2>&1; then
        echo "iOS files changed — regenerating Xcode project..."
        (cd ios/control-proxy && xcodegen generate --quiet 2>/dev/null)
        # Stage the regenerated project file if it changed
        if ! git diff --quiet ios/control-proxy/CtrlProxy.xcodeproj/project.pbxproj 2>/dev/null; then
            git add ios/control-proxy/CtrlProxy.xcodeproj/project.pbxproj
            echo "Updated CtrlProxy.xcodeproj"
        fi
    fi
fi

exit 0
