1
0

format-check.sh 945 B

123456789101112131415161718192021222324252627282930313233343536
  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. if [[ "$1" == "--pre-commit" ]]; then
  6. # used via .git/hooks/pre-commit:
  7. # exec "$(dirname $0)"/../../scripts/format-check.sh --pre-commit
  8. git-clang-format
  9. exit
  10. fi
  11. if [[ "$CI" == "true" ]]; then
  12. # used in ci, assumes clean repo
  13. clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
  14. GIT_DIFF_OUTPUT=$(git diff)
  15. if [[ ! -z ${GIT_DIFF_OUTPUT} ]]; then
  16. echo "Failed clang format check:"
  17. echo "${GIT_DIFF_OUTPUT}"
  18. exit 1
  19. else
  20. echo "Passed clang format check"
  21. exit 0
  22. fi
  23. fi
  24. CLANG_FORMAT_OUTPUT=$(git-clang-format HEAD^ HEAD --diff)
  25. if [[ ! ${CLANG_FORMAT_OUTPUT} == "no modified files to format" ]] && [[ ! -z ${CLANG_FORMAT_OUTPUT} ]]; then
  26. echo "Failed clang format check:"
  27. echo "${CLANG_FORMAT_OUTPUT}"
  28. exit 1
  29. else
  30. echo "Passed clang format check"
  31. exit 0
  32. fi