[tox]
minversion = 1.6
envlist = linters,checkbuild
skipsdist = True

[testenv]
basepython = python3
setenv =
   VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/test-requirements.txt
whitelist_externals =
   bash
   mkdir
   mv
   rsync

[testenv:venv]
commands = {posargs}

[testenv:linters]
commands =
  doc8 firstapp
  doc8 api-quick-start

[testenv:checkbuild]
basepython = python2
commands =
  # Build and copy RST Guides
  {toxinidir}/tools/build-all-rst.sh
  # Build website index
  {toxinidir}/tools/build-index.sh build

[testenv:publishdocs]
# Prepare documents (without www) so that they can get published on
# developer.openstack.org with just copying publish-docs/api-ref over.
commands =
  # Build and copy RST Guides
  {toxinidir}/tools/build-firstapp-rst.sh
  # Build and copy API Quick Start
  {toxinidir}/tools/build-api-quick-start.sh
  # Build website index
  {toxinidir}/tools/build-index.sh publish

[testenv:checklang]
whitelist_externals = doc-tools-check-languages
commands = doc-tools-check-languages doc-tools-check-languages.conf test all

[testenv:buildlang]
# Run as "tox -e buildlang -- $LANG"
whitelist_externals = doc-tools-check-languages
commands = doc-tools-check-languages doc-tools-check-languages.conf test {posargs}

[testenv:publishlang]
# Publish translated documents to developer.openstack.org with just
# copying publish-docs over.
whitelist_externals =
   doc-tools-check-languages
   mkdir
   mv
   rm
   ls
commands =
   # Cleanup first - important when this environment runs locally
   # multiple times.
   rm -rf publish-docs
   doc-tools-check-languages doc-tools-check-languages.conf publish all

[testenv:generatepot-rst]
# Generate POT files for translation, needs {posargs} like:
# tox -e generatepot-rst -- firstapp
commands = {toxinidir}/tools/generatepot-rst.sh api-site 0 {posargs}

[testenv:docs]
commands =
  {toxinidir}/tools/build-all-rst.sh

[testenv:firstapp-libcloud]
commands = sphinx-build -E -W -t libcloud firstapp/source firstapp/build-libcloud/html

[testenv:firstapp-jclouds]
commands = sphinx-build -E -W -t jclouds firstapp/source firstapp/build-jclouds/html

[testenv:firstapp-fog]
commands = sphinx-build -E -W -t fog firstapp/source firstapp/build-fog/html

[testenv:firstapp-dotnet]
commands = sphinx-build -E -W -t dotnet firstapp/source firstapp/build-dotnet/html

[testenv:firstapp-pkgcloud]
commands = sphinx-build -E -W -t pkgcloud firstapp/source firstapp/build-pkgcloud/html

[testenv:firstapp-openstacksdk]
commands = sphinx-build -E -W -t openstacksdk firstapp/source firstapp/build-openstacksdk/html

[testenv:firstapp-todos]
commands = sphinx-build -E -W -t libcloud firstapp/source firstapp/build/html

[testenv:firstapp-shade]
commands = sphinx-build -E -W -t shade firstapp/source firstapp/build-shade/html

[testenv:firstapp-gophercloud]
commands = sphinx-build -E -W -t gophercloud firstapp/source firstapp/build-gophercloud/html

[testenv:api-quick-start]
commands =
  {toxinidir}/tools/build-api-quick-start.sh

[doc8]
# Settings for doc8:
# Ignore target directories
ignore-path = firstapp/build*,common/
# File extensions to use
extensions = .rst,.txt
# Ignore lines longer than 79 chars
ignore = D001