diff --git a/scripts/format-check.sh b/scripts/format-check.sh index a1ba3b9..a2384e0 100755 --- a/scripts/format-check.sh +++ b/scripts/format-check.sh @@ -1,14 +1,27 @@ #!/bin/bash # Simple script to check for clang-format compliance -wget https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/git-clang-format -chmod +x git-clang-format -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 +# Ensure we are at the project root +cd "$(dirname $0)"/.. + +wget -Nq https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/git-clang-format + +if chmod +x git-clang-format; then + 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 + 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" + fi else - echo "Passed clang format check" + echo "git-clang-format not downloaded" + exit 1 fi -