#!/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