Blame .githooks/pre-commit

Packit 8681c6
#!/bin/sh
Packit 8681c6
#
Packit 8681c6
# Check that the code follows the coding style
Packit 8681c6
#
Packit 8681c6
# If the code does not follow the coding style a warning will be printed.
Packit 8681c6
#
Packit 8681c6
Packit 8681c6
version=`gnuindent --version 2> /dev/null`
Packit 8681c6
if [ "x$version" = "x" ]; then
Packit 8681c6
    version=`indent --version 2> /dev/null`
Packit 8681c6
    if [ "x$version" = "x" ] || [[ "$version" != *GNU* ]]; then
Packit 8681c6
        echo "Git pre-commit hook:"
Packit 8681c6
        echo "Did not find GNU indent, please install it before continuing."
Packit 8681c6
        exit 1
Packit 8681c6
    fi
Packit 8681c6
    INDENT=indent
Packit 8681c6
else
Packit 8681c6
    INDENT=gnuindent
Packit 8681c6
fi
Packit 8681c6
Packit 8681c6
echo "*******************"
Packit 8681c6
Packit 8681c6
for file in `git diff-index --cached --name-only HEAD --diff-filter=ACMR`; do
Packit 8681c6
    ext=$(expr "$file" : ".*\(\..*\)")
Packit 8681c6
    case $ext in
Packit 8681c6
        .c|.h)
Packit 8681c6
            echo "Checking code style"
Packit 8681c6
            # ckfile is the temporary checkout and we indent it
Packit 8681c6
            ckfile=`git checkout-index --temp ${file} | cut -f 1`
Packit 8681c6
            newfile=`mktemp /tmp/${ckfile}.XXXXXX` || exit 1
Packit 8681c6
            $INDENT $ckfile -o $newfile 2>> /dev/null
Packit 8681c6
            $INDENT $newfile 2>> /dev/null
Packit 8681c6
            diff -u -p "${ckfile}" "${newfile}"
Packit 8681c6
            r=$?
Packit 8681c6
            rm "${ckfile}"
Packit 8681c6
            rm "${newfile}"
Packit 8681c6
            rm "${newfile}~"
Packit 8681c6
            if [ $r != 0 ]; then
Packit 8681c6
                echo "Warning: Code style error in $file"
Packit 8681c6
                read -n1 -p "Do you want to CONTINUE committing? [Y/n]" opt < /dev/tty
Packit 8681c6
                case $opt in
Packit 8681c6
                    n|N)
Packit 8681c6
                        echo
Packit 8681c6
                        exit 1
Packit 8681c6
                        ;;
Packit 8681c6
                    *)
Packit 8681c6
                        ;;
Packit 8681c6
                esac
Packit 8681c6
                echo "*******************"
Packit 8681c6
            fi
Packit 8681c6
            exit 0
Packit 8681c6
            ;;
Packit 8681c6
        *)
Packit 8681c6
            echo "Not checking code style for this type of file"
Packit 8681c6
            echo "*******************"
Packit 8681c6
            ;;
Packit 8681c6
    esac
Packit 8681c6
done