Запустите команду условного bash внутри tox - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь запустить команды условного bash в Tox.

Если пользователь передает 'stag' в скрипт, tox должен запустить одну команду curl;если они передают 'prod' в сценарий, он должен запустить другую команду curl.

[testenv]
ENV=$1
whitelist_externals=
    /bin/bash
deps=
    -rrequirements.txt
commands=
    bash -ec 'curl https://this_is_just_sample_test.com'
    pytest test/test.py

Когда я пытаюсь ввести условие для пакетной команды:

[testenv]
ENV=$1
whitelist_externals=
    /bin/bash
deps=
    -rrequirements.txt
commands=
    bash -ec 'if [$1 == "stag"]; then curl https://this_is_just_sample_test.com fi'
    pytest test/test.py

я получаю следующеесообщение об ошибке:

ОШИБКА: InvocationError для команды '/ bin / bash -ec if [$ 1 = "stag"];затем curl https://this_is_just_sample_test.com fi '(выход с кодом 2)

1 Ответ

0 голосов
/ 31 января 2019

Позвольте мне исправить код для вас (я добавил пробелы для команды [], изменил параметр на $0 и добавил точку с запятой):

[testenv]
whitelist_externals=
    /bin/bash
deps=
    -rrequirements.txt
commands=
    bash -ec 'if [ "$0" == "stag" ]; then curl https://this_is_just_sample_test.com; fi' {posargs}
    pytest test/test.py

{posargs} - это замена, что позволяет передавать параметры командной строки из tox вызова.Как это:

$ tox stag
...