#!/bin/bash # PROJECT=$(git rev-parse --show-toplevel) cd $PROJECT SFILES=$(git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\.php) TMP_DIR=$PROJECT."/tmp"
# Determine if a file list is passed if [ "$#" -ne 0 ] then exit 0 fi echo "Check for PHP syntax errors..." for FILE in $SFILES do # 检测PHP有没有语法错误 php -l -d display_errors=0 $FILE if [ $? != 0 ] then echo "Fix the PHP syntax errors before commit." exit 1 fi FILES="$FILES $PROJECT/$FILE" done
if [ "$FILES" != "" ] then echo "Check code style..."
#创建一个临时目录 TMP_DIR=/tmp2 mkdir -p $TMP_DIR for FILE in $SFILES do mkdir -p $TMP_DIR/$(dirname $FILE) #把文件保存到临时目录 git show :$FILE > $TMP_DIR/$FILE done #检查提交的文件 phpcs --standard=PSR2 --encoding=utf-8 -n $TMP_DIR PHPCS_ERROR=$? #删除该临时目录 rm -rf $TMP_DIR if [ $PHPCS_ERROR != 0 ] then echo "Fix the code style errors before commit." exit 1 fi fi