#!/bin/bash



pass=true



files=$(git diff --cached --name-only --diff-filter=ACMR | grep -E '\.(php|phtml)$')

if [ "$files" != "" ]; then



    # Run php syntax check before commit

    while read -r file; do

        php -l "$file"

        if [ $? -ne 0 ]; then

            pass=false

        fi

    done <<< "$files"



    # Run php-cs-fixer validation before commit

    echo "$files" | xargs ./vendor/bin/php-cs-fixer fix --diff --config .php_cs.dist

    if [ $? -ne 0 ]; then

        pass=false

    fi



    # Automatically add files that may have been fixed by php-cs-fixer

    echo "$files" | xargs git add

fi



if $pass; then

    exit 0

else

    echo ""

    echo "PRE-COMMIT HOOK FAILED:"

    echo "Code style validation failed. Please fix errors and try committing again."

    exit 1

fi

