Jonas Havelka
4 months ago
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 new issue