summaryrefslogtreecommitdiff
path: root/git_hooks
diff options
context:
space:
mode:
Diffstat (limited to 'git_hooks')
-rw-r--r--git_hooks/README8
-rwxr-xr-xgit_hooks/pre-commit/codingstyle_check61
-rwxr-xr-xgit_hooks/pre-commit/copyrightyear_check48
-rwxr-xr-xgit_hooks/pre-commit/makeobj_check46
4 files changed, 163 insertions, 0 deletions
diff --git a/git_hooks/README b/git_hooks/README
new file mode 100644
index 00000000..d460b95c
--- /dev/null
+++ b/git_hooks/README
@@ -0,0 +1,8 @@
+These git hooks have been copied and adjusted from Arora code.
+
+Many thanks to Benjamin "icefox" Meyer for providing them.
+
+--------------
+They are managed using the git-hooks tool (Available here http://github.com/icefox/git-hooks)
+
+To enable them run "git hooks --install"
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
diff --git a/git_hooks/pre-commit/copyrightyear_check b/git_hooks/pre-commit/copyrightyear_check
new file mode 100755
index 00000000..535b3c16
--- /dev/null
+++ b/git_hooks/pre-commit/copyrightyear_check
@@ -0,0 +1,48 @@
+#!/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 {
+ year=`date +%Y`
+ echo "------- checking copyright year: $file"
+ grep $year $file >> /dev/null
+ if [ $? -ne 0 ] ; then
+ echo "------- Warning: $file seems to be missing a copyright string with the year $year in it.";
+ exit 1
+ else
+ echo "------- checking copyright year: PASS"
+ echo ""
+ fi
+}
+
+case "${1}" in
+ --about )
+ echo "Check the files that are being committed for a copyright with a proper year."
+ ;;
+ * )
+ for file in `git diff-index --cached --name-only HEAD | /bin/grep -F .` ; do
+ test_file "${file}"
+ done
+ ;;
+esac
diff --git a/git_hooks/pre-commit/makeobj_check b/git_hooks/pre-commit/makeobj_check
new file mode 100755
index 00000000..279c3554
--- /dev/null
+++ b/git_hooks/pre-commit/makeobj_check
@@ -0,0 +1,46 @@
+#!/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 compile {
+ unset GIT_DIR
+ echo "------- Attempting to build in $PWD"
+ makeobj --quiet
+ if [ $? != 0 ] ; then
+ echo "------- Build failed, fix failure before commiting";
+ exit 1
+ fi
+
+ echo "------- Attempting to build PASS"
+ echo ""
+}
+
+case "${1}" in
+ --about )
+ echo "Wherever you are make sure something compiles".
+ ;;
+ * )
+ compile
+ ;;
+esac