diff --git a/test/test_unit_template_default.py b/test/test_unit_template_default.py index 6d50b8e..debd3ed 100644 --- a/test/test_unit_template_default.py +++ b/test/test_unit_template_default.py @@ -238,3 +238,22 @@ def test_include(runner, yadm, tmpdir): assert run.err == '' assert output_file.read() == EXPECTED_INCLUDE assert os.stat(output_file).st_mode == os.stat(input_file).st_mode + + +def test_env(runner, yadm, tmpdir): + """Test env""" + + input_file = tmpdir.join('input') + input_file.write('{{env.PWD}}', ensure=True) + input_file.chmod(FILE_MODE) + output_file = tmpdir.join('output') + + script = f""" + YADM_TEST=1 source {yadm} + set_awk + template_default "{input_file}" "{output_file}" + """ + run = runner(command=['bash'], inp=script) + assert run.success + assert run.err == '' + assert output_file.read().strip() == os.environ['PWD'] diff --git a/yadm b/yadm index 47ee769..daf0669 100755 --- a/yadm +++ b/yadm @@ -425,6 +425,9 @@ function replace_vars() { for (label in c) { gsub(("{{" blank "*yadm\\." label blank "*}}"), c[label]) } + for (label in ENVIRON) { + gsub(("{{" blank "*env\\." label blank "*}}"), ENVIRON[label]) + } } function condition_helper(label, value) { gsub(/[\\.^$(){}\[\]|*+?]/, "\\\\&", value)