[tox]
envlist = cppcheck, flake8, pylint, mypy, vulture, htmlhint
skipsdist = true

[testenv]
basepython = python3.9
changedir = /src

[testenv:cppcheck]
whitelist_externals = cppcheck
commands = cppcheck \
			--force \
			--std=c11 \
			--error-exitcode=1 \
			--quiet \
			--enable=warning,unusedFunction,portability,performance,style \
			--suppress=assignmentInAssert \
			--suppress=variableScope \
			--inline-suppr \
			--library=python \
			--include=linters/cppcheck.h \
		src python/ustreamer.c janus/rtp.h janus/rtp.c janus/plugin.c

[testenv:flake8]
whitelist_externals = bash
commands = bash -c 'flake8 --config=linters/flake8.ini tools/*.py' python/*.py
deps =
	flake8
	flake8-quotes

[testenv:pylint]
whitelist_externals = bash
commands = bash -c 'pylint --rcfile=linters/pylint.ini --output-format=colorized --reports=no tools/*.py python/*.py'
deps =
	pylint

[testenv:mypy]
whitelist_externals = bash
commands = bash -c 'mypy --config-file=linters/mypy.ini tools/*.py python/*.py'
deps =
	mypy

[testenv:vulture]
whitelist_externals = bash
commands = bash -c 'vulture tools/*.py python/*.py'
deps =
	vulture

[testenv:htmlhint]
whitelist_externals = htmlhint
commands = htmlhint src/ustreamer/http/data/*.html
