summaryrefslogtreecommitdiff
path: root/hooks/pre-commit
diff options
context:
space:
mode:
Diffstat (limited to 'hooks/pre-commit')
-rwxr-xr-xhooks/pre-commit25
1 files changed, 25 insertions, 0 deletions
diff --git a/hooks/pre-commit b/hooks/pre-commit
new file mode 100755
index 00000000..5e10aa19
--- /dev/null
+++ b/hooks/pre-commit
@@ -0,0 +1,25 @@
+#!/bin/bash
+if clang-format --version | grep -q 'version 11\.'; then
+ CLANG_FORMAT_EXECUTABLE="clang-format"
+else
+ CLANG_FORMAT_EXECUTABLE="clang-format-11"
+fi
+
+if ! command -v $CLANG_FORMAT_EXECUTABLE &> /dev/null
+then
+ echo $CLANG_FORMAT_EXECUTABLE does not exist, make sure to install it
+ exit 1
+fi
+
+for FILE in $(git diff --cached --name-only)
+do
+ if [[ "$FILE" =~ src/[A-Za-z0-9\ \-]+*\.(c|h|cpp|cc)$ ]]; then
+ echo Autoformatting $FILE with $CLANG_FORMAT_EXECUTABLE
+ $CLANG_FORMAT_EXECUTABLE -style=file -i -- $FILE
+ git add -- $FILE
+ elif [[ "$FILE" =~ src/(components|displayapp|drivers|heartratetask|logging|systemtask)/.*\.(c|h|cpp|cc)$ ]]; then
+ echo Autoformatting $FILE with $CLANG_FORMAT_EXECUTABLE
+ $CLANG_FORMAT_EXECUTABLE -style=file -i -- $FILE
+ git add -- $FILE
+ fi
+done