Browse Source

Merge pull request #77 from kakra/optimize-format-check

format-check: Optimize format-check.sh
Alex Smith 6 years ago
parent
commit
8172f05142
1 changed files with 22 additions and 9 deletions
  1. 22 9
      scripts/format-check.sh

+ 22 - 9
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
-