mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-08-17 18:01:42 +00:00
bb6ae9ce7d
PHPDoc types can sometimes be entirely expressed as PHP native types. It is better because it avoids code duplication and enables type runtime check. This will help us slowly migrate away from PHPDoc typing to PHP native typing.
40 lines
885 B
Bash
Executable File
40 lines
885 B
Bash
Executable File
#!/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-fixer.dist.php
|
|
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
|
|
|
|
# Check PHPDoc types
|
|
./bin/check-phpdoc-types
|
|
if [ $? -ne 0 ]; then
|
|
pass=false
|
|
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
|