diff --git a/tox.ini b/tox.ini index 4ef5530f48..3c53636064 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] minversion = 1.6 skipsdist = True -envlist = docs,pep8 +envlist = docs,pep8,bashate [testenv] usedevelop = True @@ -18,14 +18,40 @@ commands= deps = -r{toxinidir}/dev-requirements.txt commands = {posargs} +# Run hacking/flake8 check for all python files [testenv:pep8] -whitelist_externals = bash +deps = flake8 + commands = + bash -c "grep -Irl \ + -e '!/usr/bin/env python' \ + -e '!/bin/python' \ + -e '!/usr/bin/python' \ + --exclude-dir '.*' \ + --exclude-dir '*.egg' \ + --exclude-fir '*.egg-info' \ + --exclude 'tox.ini' \ + --exclude '*.sh' \ + {toxinidir} | xargs flake8 --verbose" +[flake8] +# Ignores the following rules due to how ansible modules work in general +# F403 'from ansible.module_utils.basic import *' used; unable to detect undefined names +# H303 No wildcard (*) import. +ignore=F403,H303 + +# Run bashate check for all bash scripts +# Ignores the following rules: +# E003: Indent not multiple of 4 (we prefer to use multiples of 2) +[testenv:bashate] +deps = bashate +whitelist_externals = bash commands = - flake8 {posargs} - # Run bash8 during pep8 runs to ensure violations are caught by - # the check and gate queues - bash -c "find {toxinidir} \ - -not -path '*/\.*' \ # stay out of the dot directories - -name '*sh' \ # all shell scripts please - -print0 | xargs -0 bashate -v -i E003,E011" + bash -c "grep -Irl \ + -e '!/usr/bin/env bash' \ + -e '!/bin/bash' \ + -e '!/bin/sh' \ + --exclude-dir '.*' \ + --exclude-dir '*.egg' \ + --exclude-fir '*.egg-info' \ + --exclude 'tox.ini' \ + {toxinidir} | xargs bashate --verbose --ignore=E003"