Hacker News new | ask | show | jobs
by bashinator 3908 days ago
How is this different from GNU envsubst (in the gettext package)?
1 comments

envsubst will really just perform variable substitution, not perform any logic or command substitution (e.g. $(hostname -f)). It's also limited, from what I've seen, in support for other bash variable actions (such as defaults). You can also write loops with output similar to other templating languages here as well.
Traditionally, this would be a job for m4:

    $ 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