diff --git a/tools/flake8wrap.sh b/tools/flake8wrap.sh new file mode 100755 index 000000000000..ab3269df7fb2 --- /dev/null +++ b/tools/flake8wrap.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# +# A simple wrapper around flake8 which makes it possible +# to ask it to only verify files changed in the current +# git HEAD patch. +# +# Intended to be invoked via tox: +# +# tox -epep8 -- -HEAD +# + +if test "x$1" = "x-HEAD" ; then + shift + files=$(git diff --name-only HEAD~1 | tr '\n' ' ') + echo "Running flake8 on ${files}" + diff -u --from-file /dev/null ${files} | flake8 --diff "$@" +else + echo "Running flake8 on all files" + exec flake8 "$@" +fi diff --git a/tox.ini b/tox.ini index adda316ae22b..dee68ebfbe56 100644 --- a/tox.ini +++ b/tox.ini @@ -27,7 +27,7 @@ downloadcache = ~/cache/pip [testenv:pep8] commands = - flake8 {posargs} + bash tools/flake8wrap.sh {posargs} [testenv:py34] setenv = {[testenv]setenv}