30 lines
		
	
	
	
		
			822 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			822 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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
 |