summaryrefslogtreecommitdiff
path: root/git_hooks/pre-commit/codingstyle_check
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2011-07-27 18:44:06 +0200
committerAndrea Diamantini <adjam7@gmail.com>2011-07-27 18:44:33 +0200
commitcd3e2c4a041ca314ab228a5fcc34c39535c43b6e (patch)
tree1e182d22b4ed0a3d759d44017a3bcbd811841230 /git_hooks/pre-commit/codingstyle_check
parentclean up (diff)
downloadrekonq-cd3e2c4a041ca314ab228a5fcc34c39535c43b6e.tar.xz
git_hooks
These local git_hooks are based on git-hooks tool by Ben Meyer. Please, read git_hooks/README about
Diffstat (limited to 'git_hooks/pre-commit/codingstyle_check')
-rwxr-xr-xgit_hooks/pre-commit/codingstyle_check61
1 files changed, 61 insertions, 0 deletions
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 <ben@meyerhome.net>
+# Copyright (C) 2011 by Andrea Diamantini <adjam7 at gmail dot com>
+#
+#
+# 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 <http://www.gnu.org/licenses/>.
+#
+#######################################################################
+
+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