aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2016-09-18 00:59:46 +0900
committerEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2016-09-18 09:36:57 +0900
commitc57d6ccac30795dc2b613ac4b607ecc0e68c9152 (patch)
treef36c3bb748c0eb6db9a7414434c6ed7c246855d4
parentb26517b08c17f2dbf94dd496f1020aaa37804672 (diff)
Git hook: Import Dolphin’s clang-format hook.
-rwxr-xr-xhooks/pre-commit19
1 files changed, 18 insertions, 1 deletions
diff --git a/hooks/pre-commit b/hooks/pre-commit
index c100bb6349..ee818b5664 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"