format-check.sh 807 B

123456789101112131415161718192021222324252627
  1. #!/bin/bash
  2. # Simple script to check for clang-format compliance
  3. # Ensure we are at the project root
  4. cd "$(dirname $0)"/..
  5. wget -Nq -T3 -t1 https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/git-clang-format
  6. if chmod +x git-clang-format; then
  7. if [[ "$1" == "--pre-commit" ]]; then
  8. # used via .git/hooks/pre-commit:
  9. # exec "$(dirname $0)"/../../scripts/format-check.sh --pre-commit
  10. ./git-clang-format
  11. exit
  12. fi
  13. CLANG_FORMAT_OUTPUT=$(./git-clang-format HEAD^ HEAD --diff)
  14. if [[ ! ${CLANG_FORMAT_OUTPUT} == "no modified files to format" ]] && [[ ! -z ${CLANG_FORMAT_OUTPUT} ]]; then
  15. echo "Failed clang format check:"
  16. echo "${CLANG_FORMAT_OUTPUT}"
  17. exit 1
  18. else
  19. echo "Passed clang format check"
  20. fi
  21. else
  22. echo "git-clang-format not downloaded"
  23. exit 1
  24. fi