38 lines
710 B
Bash
38 lines
710 B
Bash
|
#!/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
|