Kontroly codestylu nechceme
This commit is contained in:
parent
350623c6ac
commit
75344c2c3a
3 changed files with 0 additions and 107 deletions
|
@ -1,16 +0,0 @@
|
||||||
git hooks
|
|
||||||
=========
|
|
||||||
|
|
||||||
Kontrola stylu pythoních zdrojáků pomocí flake8. Kontrolujeme jen změny,
|
|
||||||
abychom nenutili lidi dělat nesouvisející úpravy, které by rozbíjely historii
|
|
||||||
(git blame).
|
|
||||||
|
|
||||||
pre-commit
|
|
||||||
----------
|
|
||||||
* kontrola změn před commitnutím
|
|
||||||
* instalace: lokálně zkopírovat do .git/hooks (musí být spustitelný)
|
|
||||||
|
|
||||||
update
|
|
||||||
------
|
|
||||||
* kontrola změn přicházejících s pushem
|
|
||||||
* instalace: na atreyi zkopírovat do /akce/MaM/MaMweb/mamweb.git/hooks
|
|
|
@ -1,30 +0,0 @@
|
||||||
#!/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
|
|
|
@ -1,61 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# git update hook to check that pushed changes don't introduce new flake8
|
|
||||||
# errors
|
|
||||||
|
|
||||||
# --- Command line
|
|
||||||
refname="$1"
|
|
||||||
oldrev="$2"
|
|
||||||
newrev="$3"
|
|
||||||
|
|
||||||
# --- Safety check
|
|
||||||
if [ -z "$GIT_DIR" ]; then
|
|
||||||
echo "Don't run this script from the command line." >&2
|
|
||||||
echo " (if you want, you could supply GIT_DIR then run" >&2
|
|
||||||
echo " $0 <ref> <oldrev> <newrev>)" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
|
|
||||||
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
TMPDIR=`mktemp -d`
|
|
||||||
TMPDIFF=`tempfile`
|
|
||||||
|
|
||||||
[ $refname != "refs/heads/master" -a $refname != "refs/heads/stable" ] && exit 0
|
|
||||||
|
|
||||||
# select only changed python files which are not migrations
|
|
||||||
changed=`git diff --name-only $oldrev $newrev | 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 $oldrev $newrev -- $changed >${TMPDIFF}
|
|
||||||
|
|
||||||
# there is no working tree in bare git repository, so we recreate it for flake8
|
|
||||||
git archive $newrev | tar -x -C ${TMPDIR}
|
|
||||||
|
|
||||||
cd ${TMPDIR}
|
|
||||||
# report only errors on lines in diff
|
|
||||||
# (if threre was flake8 installed on atrey, we could just call flake8)
|
|
||||||
/akce/MaM/WWW/mamweb-test/bin/flake8 --diff <${TMPDIFF}
|
|
||||||
status=$?
|
|
||||||
if [ $status != 0 ] ; then
|
|
||||||
echo
|
|
||||||
echo -n "Změny, které se snažíte pushnout, obsahují kód v pythonu "
|
|
||||||
echo -n "nevyhovující flake8 (viz výše). Opravte je a zkuste to znovu. "
|
|
||||||
echo -n "Nezapomeňte, že můžete editovat historii (git commit --amend, "
|
|
||||||
echo -n "git rebase -i). Pokud byste chybu příště raději odhalili už při "
|
|
||||||
echo "commitu, zkopírujte si pre-commit hook z _git_hooks do .git/hooks."
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf ${TMPDIR}
|
|
||||||
rm -f ${TMPDIFF}
|
|
||||||
|
|
||||||
exit $status
|
|
Loading…
Reference in a new issue