#!/bin/sh

set -eux -o pipefail

PROJECT=`php -r "echo dirname(dirname(dirname(realpath('$0'))));"`
 
#grep has exit code of 1 for no match
set +x
STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\\\.php`
set -x

# Determine if a file list is passed
if [ "$#" -eq 1 ]
then
	oIFS=$IFS
	IFS='
	'
	SFILES="$1"
	IFS=$oIFS
fi
SFILES=${SFILES:-$STAGED_FILES_CMD}

echo "Checking php"
php -v

FILES=""
#echo "Checking PHP Lint..."
#I skip this due to 5.4 shenanigans.
for FILE in $SFILES
do
    #php -l -d display_errors=1 $PROJECT/$FILE
    #if [ $? != 0 ]
    #then
    #    echo "Fix the error before commit."
    #    exit 1
    #fi
    FILES="$FILES $PROJECT/$FILE"
done

if [ "$FILES" != "" ]
then
    echo "Running Code Sniffer..."

    ./vendor/bin/phpcs --standard=./test/codesniffer.xml --encoding=utf-8 -n -p $FILES
    if [ $? != 0 ]
    then
        echo "Fix the error before commit."
        exit 1
    fi
fi

exit $?
