summaryrefslogtreecommitdiff
path: root/contrib/conf/uncrustify_precommit
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/conf/uncrustify_precommit')
-rwxr-xr-xcontrib/conf/uncrustify_precommit35
1 files changed, 35 insertions, 0 deletions
diff --git a/contrib/conf/uncrustify_precommit b/contrib/conf/uncrustify_precommit
new file mode 100755
index 000000000..fd29998c3
--- /dev/null
+++ b/contrib/conf/uncrustify_precommit
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# use as .git/hooks/pre-commit
+
+exec 1>&2
+
+RET=0
+changed=$(git diff --cached --name-only)
+crustified=""
+
+for f in $changed;
+do
+ if echo $f | grep \\.[c,h]\$ > /dev/null
+ then
+ # compare result of uncrustify with changes
+ #
+ # only change any of the invocations here if
+ # they are portable across all cmp and shell
+ # implementations !
+ uncrustify -q -c uncrustify.cfg -f $f | cmp -s $f -
+ if test $? = 1 ;
+ then
+ crustified=" $crustified $f"
+ RET=1
+ fi
+ fi
+done
+
+if [ $RET = 1 ];
+then
+ echo "Run"
+ echo "uncrustify --no-backup -c uncrustify.cfg ${crustified}"
+ echo "before commiting."
+fi
+exit $RET