|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# Git hook script to verify what is about to be committed.
|
|
|
|
# Checks that the changes don't introduce new flake8 errors.
|
|
|
|
|
|
|
|
TMPDIFF=`tempfile`
|
|
|
|
FLAKE8="`git rev-parse --show-toplevel`/bin/flake8"
|
|
|
|
|
|
|
|
status=0
|
|
|
|
|
|
|
|
# select only changed python files which are not migrations
|
|
|
|
changed=`git diff --cached --name-only | grep 'py$' | grep -v 'migrations/[0-9]'`
|
|
|
|
if [ -z $changed ] ; then
|
|
|
|
# Nothing to check. Note the exit is necessary -- we would not pass any
|
|
|
|
# paths to git diff below and it would output the diff unfiltered.
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
git diff --unified=1 --cached HEAD -- $changed > $TMPDIFF
|
|
|
|
|
|
|
|
# only do the check when there are some changes to be commited
|
|
|
|
# otherwise flake8 would hang waiting for input
|
|
|
|
if [ -s $TMPDIFF ] ; then
|
|
|
|
cat $TMPDIFF | $FLAKE8 --diff
|
|
|
|
status=$?
|
|
|
|
fi
|
|
|
|
|
|
|
|
rm -f $TMPDIFF
|
|
|
|
|
|
|
|
exit $status
|