Add pre-commit git hook to check code style

The hook automatically fixes most code style mistakes
and should be installed once with:

```sh
ln -s ../../bin/pre-commit .git/hooks/pre-commit
```
This commit is contained in:
Adrien Crivelli 2017-01-05 01:29:29 +09:00
parent f0445366d2
commit a23f681332
No known key found for this signature in database
GPG Key ID: B182FD79DC6DE92E
1 changed files with 33 additions and 0 deletions

33
bin/pre-commit Executable file
View File

@ -0,0 +1,33 @@
#!/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