InfiniTime/tests/test-format.sh

41 lines
811 B
Bash
Raw Permalink Normal View History

2022-04-30 19:53:34 +00:00
#!/bin/sh
set -e
if [ -z "$GITHUB_BASE_REF" ]
then
echo "This script is only meant to be run in a GitHub Workflow"
exit 1
fi
2022-04-30 19:53:34 +00:00
CHANGED_FILES=$(git diff --name-only "$GITHUB_BASE_REF"...HEAD)
2022-04-30 19:53:34 +00:00
CHANGED=0
for file in $CHANGED_FILES
do
[ -e "$file" ] || continue
2022-04-30 19:53:34 +00:00
case "$file" in
src/libs/*|src/FreeRTOS/*) continue ;;
2022-04-30 19:53:34 +00:00
*.cpp|*.h)
echo Checking "$file"
PATCH="$(basename "$file").patch"
git clang-format-14 -q --style file --diff "$GITHUB_BASE_REF" "$file" > "$PATCH"
if [ -s "$PATCH" ]
2022-04-30 19:53:34 +00:00
then
printf "\033[31mError:\033[0m Formatting error in %s\n" "$file"
CHANGED=1
else
rm "$PATCH"
2022-04-30 19:53:34 +00:00
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