diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test-format.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test-format.sh b/tests/test-format.sh new file mode 100755 index 00000000..9caf6de5 --- /dev/null +++ b/tests/test-format.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +[ -z "$1" ] && exit + +basebranch=$1 + +CHANGED_FILES=$(git diff --name-only "$basebranch"...HEAD) + +CHANGED=0 + +for file in $CHANGED_FILES +do + case "$file" in + *.cpp|*.h) + echo Checking "$file" + clang-format -i "$file" + if ! git diff --quiet "$basebranch"...HEAD + then + printf "\033[31mError:\033[0m Formatting error in %s\n" "$file" + CHANGED=1 + git add "$file" + git commit -q -m "Apply clang-format to $(basename "$file")" + printf "Creating patch " + git format-patch HEAD~ + fi + esac +done + +if [ $CHANGED = 1 ] +then + printf "\033[31mError:\033[0m Issues found. You may use the patches provided as artifacts to format the code." + exit 1 +fi + +exit 0 |