Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Sempl – Stupid Simple Bash Templating (github.com/nextrevision)
30 points by nextrevision on Oct 8, 2015 | hide | past | favorite | 8 comments



If anyone uses this, please share. As a newb, I would love to see some real use examples to learn from.


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.


Just today I made a suggestion in a Github issue[0] to use sed for a similar use case. There, it was to generate an Amazon ECS task definition file from a CI tool's environment variables. Using this, populating the list of environment variables by looping through the output of env and including anything that matches a given prefix would be a breeze.

Thanks for the excellent tool!

[0]: https://github.com/1science/wercker-aws-ecs/issues/4#issueco...


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

http://nextrevision.github.io/2015/sempl-templating-with-bas...


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.


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


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




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: