1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#!/bin/bash
# Simple script to check for clang-format compliance
# Ensure we are at the project root
cd "$(dirname $0)"/..
if [[ "$1" == "--pre-commit" ]]; then
# used via .git/hooks/pre-commit:
# exec "$(dirname $0)"/../../scripts/format-check.sh --pre-commit
git-clang-format
exit
fi
if [[ "$CI" == "true" ]]; then
# used in ci, assumes clean repo
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
GIT_DIFF_OUTPUT=$(git diff)
if [[ ! -z ${GIT_DIFF_OUTPUT} ]]; then
echo "Failed clang format check:"
echo "${GIT_DIFF_OUTPUT}"
exit 1
else
echo "Passed clang format check"
exit 0
fi
fi
CLANG_FORMAT_OUTPUT=$(git-clang-format HEAD^ HEAD --diff)
if [[ ! ${CLANG_FORMAT_OUTPUT} == "no modified files to format" ]] && [[ ! -z ${CLANG_FORMAT_OUTPUT} ]]; then
echo "Failed clang format check:"
echo "${CLANG_FORMAT_OUTPUT}"
exit 1
else
echo "Passed clang format check"
exit 0
fi
|