diff options
| -rw-r--r-- | git_hooks/README | 8 | ||||
| -rwxr-xr-x | git_hooks/pre-commit/codingstyle_check | 61 | ||||
| -rwxr-xr-x | git_hooks/pre-commit/copyrightyear_check | 48 | ||||
| -rwxr-xr-x | git_hooks/pre-commit/makeobj_check | 46 | 
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 | 
