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
|