How is this different from GNU envsubst (in the gettext package)?
$ cat examples/config.yaml.in
user: USERNAME
password: ifelse(PASSWORD,`PASSWORD',`defaultpass',PASSWORD)
files:
patsubst(esyscmd(`ls'), `.+$', ` - \&')
$ m4 -DUSERNAME=somebody examples/config.yaml.in
user: somebody
password: defaultpass
files:
- README.m4
- examples
- sempl