[tox]
envlist = linters
minversion = 2.9
skipsdist = True
sitepackages=False

[testenv]
install_command = pip install -U \
    {opts} {packages} \
    -c{env:TOX_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt}

setenv =
   VIRTUAL_ENV={envdir}
   OS_STDOUT_CAPTURE=1
   OS_STDERR_CAPTURE=1
   OS_DEBUG=1
   OS_LOG_CAPTURE=1
deps =
  -r{toxinidir}/requirements.txt
  -r{toxinidir}/test-requirements.txt
allowlist_externals =
  bash

passenv =
    XDG_CACHE_HOME


[testenv:bashate]
# Treat all E* codes as Errors rather than warnings using: -e 'E*'
commands =
  bash -c "find {toxinidir}                    \
         -not \( -type d -name .?\* -prune \) \
         -type f                              \
         -not -name \*~                       \
         -not -name \*.md                     \
         -name \*.sh                          \
         -print0 | xargs -r -n 1 -0 bashate -v   \
         -e 'E*'"

[testenv:linters]
commands =
    {[testenv:bashate]commands}

[testenv:flake8]
basepython = python3
description = Dummy environment to allow flake8 to be run in subdir tox

[testenv:pylint]
basepython = python3
description = Dummy environment to allow pylint to be run in subdir tox

[testenv:bandit]
basepython = python3
description = Dummy environment to allow bandit to be run in subdir tox