From 491f5bab88b67926a3ccf72c1c35527071a93a9b Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Sun, 18 Sep 2016 00:59:46 +0900 Subject: [PATCH] =?UTF-8?q?Git=20hook:=20Import=20Dolphin=E2=80=99s=20clan?= =?UTF-8?q?g-format=20hook.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hooks/pre-commit | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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"