#!/bin/sh # AUTHOR: supperthomas if git rev-parse --verify HEAD >/dev/null 2>&1 then against=HEAD else # Initial commit: diff against an empty tree object against=$(git hash-object -t tree /dev/null) fi # We only filter the file name with c or cpp file. changed_files=$(git diff-index --cached $against | \ grep -E '[MA] .*\.(c|cpp|cc|cxx)$' | cut -d' ' -f 2) if which cppcheck > /dev/null; then if [ -n "$changed_files" ]; then cppcheck --enable=warning,performance,portability --inline-suppr --error-exitcode=1 --platform=win64 --force $changed_files err=$? if [ $err -ne 0 ]; then echo "[rt-thread][cppcheck] we found a obvious fault, please fix the error then commit again" exit $err else echo "[rt-thread][cppcheck] cppcheck ok." fi fi else echo "cppcheck does not exist" fi # We only filter the file name with c or cpp or h file. # astyle only astyle the added file[because of code reivewer], if you want change modify file, please use [MA] changed_files=$(git diff-index --cached $against | \ grep -E '[MA] .*\.(c|cpp|h)$' | cut -d' ' -f 2) if which astyle > /dev/null; then if [ -n "$changed_files" ]; then astyle --style=allman --indent=spaces=4 --indent=spaces=4 --indent=spaces=4 --pad-header --pad-header --pad-header --align-pointer=name --lineend=linux --convert-tabs --verbose $changed_files err=$? if [ $err -ne 0 ]; then echo "[rt-thread][astyle] we found a obvious fault, please fix the error then commit again" exit $err else echo "[rt-thread][astyle] astyle file ok" fi fi else echo "astyle does not exist" fi # We only filter the file name with c or cpp file. changed_files=$(git diff-index --cached $against | \ grep -E '[MA] .*\.(c|cpp|h)$' | cut -d' ' -f 2) # formatting check # https://github.com/mysterywolf/formatting # formatting cmd ref https://github.com/supperthomas/git_auto_script if which formatting > /dev/null; then if [ -n "$changed_files" ]; then formatting $changed_files echo "[rt-thread] formatting $changed_files is ok" git add $changed_files exit 0 fi else echo "formatting does not exist" fi exit 0