Skip to content

Commit 653c117

Browse files
authored
Support is_path key for input_description and expanding user home for path variables. (#808)
1 parent f796b60 commit 653c117

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

automation/script/module.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,7 @@ def _run(self, i):
641641
docker_settings = run_state['docker']
642642

643643
input_mapping = meta.get('input_mapping', {})
644+
input_description = meta.get('input_description', {})
644645

645646
docker_settings = meta.get('docker')
646647

@@ -675,10 +676,12 @@ def _run(self, i):
675676
# (env OVERWRITE - user enforces it from CLI)
676677
# (it becomes const)
677678
if input_mapping:
678-
update_env_from_input_mapping(env, i, input_mapping)
679-
update_env_from_input_mapping(const, i, input_mapping)
679+
update_env_from_input_mapping(
680+
env, i, input_mapping, input_description)
681+
update_env_from_input_mapping(
682+
const, i, input_mapping, input_description)
680683

681-
# This mapping is done in module_misc
684+
# This mapping is done in docker script
682685
# if docker_input_mapping:
683686
# update_env_from_input_mapping(env, i, docker_input_mapping)
684687
# update_env_from_input_mapping(const, i, docker_input_mapping)
@@ -5520,13 +5523,18 @@ def update_deps_from_input(deps, post_deps, prehook_deps, posthook_deps, i):
55205523

55215524

55225525
##############################################################################
5523-
def update_env_from_input_mapping(env, inp, input_mapping):
5526+
def update_env_from_input_mapping(
5527+
env, inp, input_mapping, input_description={}):
55245528
"""
55255529
Internal: update env from input and input_mapping
55265530
"""
55275531
for key in input_mapping:
55285532
if key in inp:
5529-
env[input_mapping[key]] = inp[key]
5533+
if key in input_description and str(input_description[key].get(
5534+
'is_path', '')).lower() in ['1', 'yes', 'on', 'true']:
5535+
env[input_mapping[key]] = os.path.expanduser(inp[key])
5536+
else:
5537+
env[input_mapping[key]] = inp[key]
55305538

55315539

55325540
def _apply_conditional_meta_updates(update_meta_if_env, default_env, env, const, state, const_state,
@@ -5724,7 +5732,11 @@ def update_state_from_meta(meta, env, state, const, const_state, run_state, i):
57245732

57255733
input_mapping = meta.get('input_mapping', {})
57265734
if input_mapping:
5727-
update_env_from_input_mapping(env, input_update_env, input_mapping)
5735+
update_env_from_input_mapping(
5736+
env,
5737+
input_update_env,
5738+
input_mapping,
5739+
meta.get('input_description', {}))
57285740

57295741
# handle dynamic env values
57305742
r = update_env_with_values(env)

0 commit comments

Comments
 (0)