summaryrefslogtreecommitdiffstats
path: root/hooks/pre-commit
diff options
context:
space:
mode:
Diffstat (limited to 'hooks/pre-commit')
-rwxr-xr-xhooks/pre-commit19
1 files changed, 18 insertions, 1 deletions
diff --git a/hooks/pre-commit b/hooks/pre-commit
index c100bb634..ee818b566 100755
--- a/hooks/pre-commit
+++ b/hooks/pre-commit
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
# Enforce citra's whitespace policy
git config --local core.whitespace tab-in-indent,trailing-space
@@ -24,3 +24,20 @@ If you know what you are doing, you can try 'git commit --no-verify' to bypass t
END
exit 1
fi
+
+for f in $(git diff --name-only --diff-filter=ACMRTUXB --cached); do
+ if ! echo "$f" | egrep -q "[.](cpp|h)$"; then
+ continue
+ fi
+ if ! echo "$f" | egrep -q "^src/"; then
+ continue
+ fi
+ d=$(diff -u "$f" <(clang-format "$f"))
+ if ! [ -z "$d" ]; then
+ echo "!!! $f not compliant to coding style, here is the fix:"
+ echo "$d"
+ fail=1
+ fi
+done
+
+exit "$fail"