--- /dev/null
+#!/bin/sh
+
+if git rev-parse --verify HEAD >/dev/null 2>&1
+then
+ against=HEAD
+else
+ # Initial commit: diff against an empty tree object
+ against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+fi
+
+FILES=$(git diff-index --name-only --diff-filter=ACMR --cached $against -- |egrep ".py$")
+if [ "$FILES" != "" ]; then
+ # We want to look at the staged version only, so we have to run it once for
+ # each file.
+ E=0
+ for F in ${FILES}; do
+ P=$(git show ":$F" | python3 -c "import sys; compile(sys.stdin.read(), '/dev/null', 'exec')")
+ if [ "$?" != "0" ]; then
+ echo "Errors in $F"
+ echo $P
+ E=1
+ continue
+ fi
+
+ R=$(git show ":$F" | pep8 -)
+ if [ "$?" != "0" ]; then
+ echo "Errors in $F"
+ echo "$R"
+ E=1
+ fi
+ done
+ if [ "$E" != "0" ]; then
+ exit 1
+ fi
+
+ echo Basic python checks passed.
+fi
+