
Show HN: Sempl – Stupid Simple Bash Templating - nextrevision
https://github.com/nextrevision/sempl/
======
learning_still
If anyone uses this, please share. As a newb, I would love to see some real
use examples to learn from.

~~~
nextrevision
Sure thing, I'm currently using it in docker as a lightweight way to set
config files from environment variables. I'll put together a write up of
how/why we are doing that and post the link in reply to this.

~~~
nextrevision
Here's the write up. Let me know if there's anything unclear!

[http://nextrevision.github.io/2015/sempl-templating-with-
bas...](http://nextrevision.github.io/2015/sempl-templating-with-bash/)

~~~
learning_still
This is perfect! Thank you for taking the time to make this. It gave me a much
better understanding of what sempl is, how to use it, and what it can be used
for.

------
bashinator
How is this different from GNU envsubst (in the gettext package)?

~~~
nextrevision
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.

~~~
pdkl95
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

