From cd3e2c4a041ca314ab228a5fcc34c39535c43b6e Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Wed, 27 Jul 2011 18:44:06 +0200 Subject: git_hooks These local git_hooks are based on git-hooks tool by Ben Meyer. Please, read git_hooks/README about --- git_hooks/pre-commit/codingstyle_check | 61 ++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 git_hooks/pre-commit/codingstyle_check (limited to 'git_hooks/pre-commit/codingstyle_check') diff --git a/git_hooks/pre-commit/codingstyle_check b/git_hooks/pre-commit/codingstyle_check new file mode 100755 index 00000000..dffebed5 --- /dev/null +++ b/git_hooks/pre-commit/codingstyle_check @@ -0,0 +1,61 @@ +#!/bin/bash +# +# Copyright (c) 2010, Benjamin C. Meyer +# Copyright (C) 2011 by Andrea Diamantini +# +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License or (at your option) version 3 or any later version +# accepted by the membership of KDE e.V. (or its successor approved +# by the membership of KDE e.V.), which shall act as a proxy +# defined in Section 14 of version 3 of the license. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +####################################################################### + +function test_file { + file="${1}" + echo "" + echo "------- Checking style on .cpp files" + tempfoo=`basename $0` + newfile=`mktemp /tmp/${tempfoo}.XXXXXX` || exit 1 + astyle \ + --indent=spaces=4 \ + --style=allman \ + --indent-labels \ + --pad-oper \ + --pad-header \ + --unpad-paren \ + --keep-one-line-statements \ + --convert-tabs \ + --indent-preprocessor < $file > $newfile 2>> /dev/null + diff "${file}" "${newfile}" + r=$? + rm "${newfile}" + if [ $r != 0 ] ; then + echo "Code style error in $file, please fix before commiting." + exit 1 + fi + echo "------- Style check PASSED" + echo "" +} + +case "${1}" in + --about ) + echo "Check that the code follows a consistent code style." + ;; + * ) + for file in `git diff-index --cached --name-only HEAD | grep .cpp` ; do + test_file "${file}" + done + ;; +esac -- cgit v1.2.1