#!/usr/bin/php
<?php
$error = 0;
# File Checks
exec('git diff --cached --name-status --diff-filter=ACM', $output);
foreach ($output as $line) {
$action = trim($line[0]);
$fileName = trim( substr($line, 1) );
# PHP Syntax
if(strpos($fileName, '.php') !== false)
{
checkSyntax($fileName);
}
}
# Content checks
// Whitespace
#exec('git diff --cached --check', $output2);
#foreach($output2 as $line) {
# echo $line."\n";
# $error = 1;
#}
exit($error);
function checkSyntax($fileName)
{
global $error;
$op = array();
exec('/usr/bin/php -l '.$fileName.' 2> /dev/null', $output, $failed);
if (!$failed)
{
return;
}
echo "\033[31mSyntax error in $fileName: " . $output[1] . "\033[37m\n";
$error = 1;
}