Open hesoyamhh opened 3 years ago
You need to modify your test.j2 to Hi {{ data_var | d(env_var) | d('default_var') }}
bash-5.0$ cat test.j2
Hi {{ data_var | d(env_var) | d('default_var') }}
bash-5.0$
bash-5.0$ cat data_test.yaml
data_var: foo_yaml
bash-5.0$
bash-5.0$ export env_var='foo_env_var'
bash-5.0$
bash-5.0$ echo $env_var
foo_env_var
bash-5.0$
bash-5.0$
bash-5.0$ j2 --undefined -o test test.j2 && cat test
Hi foo_env_var
bash-5.0$
bash-5.0$ j2 --undefined -o test test.j2 data_test.yaml && cat test
Hi foo_yaml
bash-5.0$
bash-5.0$ unset env_var
bash-5.0$
bash-5.0$ j2 --undefined -o test test.j2 && cat test
Hi default_var
bash-5.0$
It will work as expected
My dummy test.j2 file contains:
Hi {{ data_var | env_var | d('default_var') }}
My data_test.yaml contains:data_var: foo_yaml
I have set env_var via:export env_var='foo_env'
So, as per templating:
Case-1:
j2 --undefined test.j2 data_test.yaml -o test
should outputHi foo_yaml
Case-2:
j2 --undefined test.j2 -o test
should outputHi foo_env
Case-3: if I execute
unset env_var
and then executej2 --undefined test.j2 -o test
, it should outputHi default_var
But in all cases, it throws error:
So, not only piped templating doesn't happen, it also ignores
--undefined