From f91181fb13a77b00a5aa37264d19731cc3a0221c Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Thu, 17 Jan 2019 21:26:41 +0100 Subject: [PATCH] Add a githook and a config file to run pep8 pre-commit --- setup.cfg | 5 +++++ tools/githook/pre-commit | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 setup.cfg create mode 100755 tools/githook/pre-commit diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..cc730063 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,5 @@ +[pycodestyle] +statistics=True +exclude=dep/*,pgweb/settings_local.py +ignore=E116,E402,E501,E741 +max-line-length=120 diff --git a/tools/githook/pre-commit b/tools/githook/pre-commit new file mode 100755 index 00000000..8d0a87d1 --- /dev/null +++ b/tools/githook/pre-commit @@ -0,0 +1,38 @@ +#!/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" | python -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 +