PhpSpreadsheet/bin/pre-commit

34 lines
788 B
Plaintext
Raw Normal View History

#!/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