#!/bin/sh

echo "######### Pre-commit hook start #############"
echo "--- php-cs-fixer pre commit hook start ---"

FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.php$')
# Vérifier s'il y a des fichiers PHP modifiés
if [ -n "$FILES" ]; then
    echo "Running PHP CS Fixer on staged PHP files..."

    # Convertir la liste des fichiers en une chaîne séparée par des espaces
    FILES_LIST=""
    for FILE in $FILES; do
        FILES_LIST="$FILES_LIST $FILE"
    done

    # Exécuter la cible make pour PHP CS Fixer
    make php-cs-fixer-allow-risky FILES="$FILES_LIST"

    # Ajouter les fichiers corrigés au commit
    git add $FILES
else
    echo "No PHP files to fix."
fi
echo "--- php-cs-fixer pre commit hook finish---"

echo "--- eslint pre commit hook start ---"
make nuxt-lint
ESLINT_RESULT=$?

if [ $ESLINT_RESULT -ne 0 ]; then
    echo "ESLint failed. Aborting commit."
    exit 1
fi
echo "--- eslint pre commit hook finished ---"

echo "--- phpunit pre commit hook start ---"
make test
PHPUNIT_RESULT=$?

if [ $PHPUNIT_RESULT -ne 0 ]; then
    echo "PHPUnit tests failed. Aborting commit."
    exit 1
fi
echo "--- phpunit pre commit hook finished ---"

echo "All checks passed. Proceeding with commit."
exit 0
