Hacker News new | ask | show | jobs
by nextrevision 3911 days ago
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.
1 comments

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