diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-05-26 13:20:27 +0200 |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-05-26 13:20:27 +0200 |
commit | 5f0f9a9c9145a129a063b041424c3109a24d9ead (patch) | |
tree | f7999762a8f71f407295641586ac013d7bfe091e /pre-commit.hook | |
parent | 1319da5b7f483e48a90b0b7489f77236ba26f479 (diff) | |
download | pygobject-5f0f9a9c9145a129a063b041424c3109a24d9ead.tar.gz |
Install pre-commit hook that checks the code changes for style conformance
Diffstat (limited to 'pre-commit.hook')
-rwxr-xr-x | pre-commit.hook | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pre-commit.hook b/pre-commit.hook new file mode 100755 index 00000000..6eafd526 --- /dev/null +++ b/pre-commit.hook @@ -0,0 +1,39 @@ +#!/bin/sh +# +# Check that the code follows a consistant code style +# + +# Check for existence of astyle, and error out if not present. +if ! builtin type -P astyle; then + echo "PyGI git pre-commit hook:" + echo "Did not find astyle, please install it before continuing." + exit 1 +fi + +ASTYLE_PARAMETERS="-p -d -c -S -U -M60" + +echo "--Checking style--" +for file in `git-diff-index --cached --name-only HEAD --diff-filter=ACMR| grep "\.c$"` ; do + # nf is the temporary checkout. This makes sure we check against the + # revision in the index (and not the checked out version). + nf=`git checkout-index --temp ${file} | cut -f 1` + newfile=`mktemp /tmp/${nf}.XXXXXX` || exit 1 + astyle ${ASTYLE_PARAMETERS} < $nf > $newfile 2>> /dev/null + diff -u -p "${nf}" "${newfile}" + r=$? + rm "${newfile}" + rm "${nf}" + if [ $r != 0 ] ; then +echo "=================================================================================================" +echo " Code style error in: $file " +echo " " +echo " Please fix before committing. Don't forget to run git add before trying to commit again. " +echo " If the whole file is to be committed, this should work (run from the top-level directory): " +echo " " +echo " astyle ${ASTYLE_PARAMETERS} $file; git add $file; git commit" +echo " " +echo "=================================================================================================" + exit 1 + fi +done +echo "--Checking style pass--" |