diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2016-09-21 11:29:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-21 11:29:48 -0700 |
commit | d5d2ca8058a0f1c00ab7ca9fe2c058ba47546c0a (patch) | |
tree | 8a22ca73ff838f3f0090b29a548ae81087fc90ed /hooks/pre-commit | |
parent | 2a910a6d883f2227edc74aacf5b93a58a3dea07c (diff) | |
parent | 0e3f0120a8ec2996e73bb6b7b6c9d7531f7a7eb1 (diff) |
Merge pull request #2086 from linkmauve/clang-format
Add clang-format as part of our {commit,travis}-time checks
Diffstat (limited to 'hooks/pre-commit')
-rwxr-xr-x | hooks/pre-commit | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/hooks/pre-commit b/hooks/pre-commit index c100bb634..6dd281c4a 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 @@ -7,7 +7,7 @@ paths_to_check="src/ CMakeLists.txt" # If there are whitespace errors, print the offending file names and fail. if ! git diff --cached --check -- $paths_to_check ; then - cat<<END; + cat<<END Error: This commit would contain trailing spaces or tabs, which is against this repo's policy. Please correct those issues before commiting. (Use 'git diff --check' for more details) @@ -18,9 +18,26 @@ fi # Check for tabs, since tab-in-indent catches only those at the beginning of a line if git diff --cached -- $paths_to_check | egrep '^\+.* '; then - cat<<END; + cat<<END Error: This commit would contain a tab, which is against this repo's policy. If you know what you are doing, you can try 'git commit --no-verify' to bypass the check. 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" |