-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
31 lines (25 loc) · 1.01 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""A tox plugin that allows backquote expansion in set_env section.
"""
from tox.config.sets import EnvConfigSet
from tox.plugin import impl
from tox.session.state import State
from tox.tox_env.api import ToxEnv
from .backquote import SHELL, has_backticks, \
eval_backquote, set_env_backquote_items
from .setenv import set_env_items
@impl
def tox_add_env_config(env_conf: EnvConfigSet, state: State) -> None:
"""Post process config after parsing."""
# pylint: disable=unused-argument
set_env = env_conf["set_env"]
for _, value in set_env_items(set_env):
if has_backticks(value):
# Add bash in order to be able to evaluate backquotes.
env_conf["allowlist_externals"].append(SHELL)
return
@impl
def tox_before_run_commands(tox_env: ToxEnv) -> None:
"""Eval and replace backquotes expressions"""
set_env = tox_env.conf["set_env"]
set_env.update({var: eval_backquote(tox_env, cmd, var)
for var, cmd in set_env_backquote_items(set_env)})