One day, @roberth and @zimbatm were tired of manually replacing variables with sed. What if they could just drop variables in the file and have bash do the substitution for them? Get the full power of the bash variable expansion, brilliant!
Thus was born the shab templating language. Minimal size, maximum power (assuming bash is already installed).
$ wc -l shab
24 shab
SECURITY WARNING: only use templates that you trust! The template really does have all the power of a shell script.
Input:
$ cat example.shab
Hello,
this is a shab templating example.
Usage: ./shab example.shab
Your hostname: $(hostname)
Your user: ${USER:-unknown}
Output:
$ shab example.shab
Hello,
this is a shab templating example.
Usage: ./shab example.shab
Your hostname: x1
Your user: zimbatm
Of course you want to use this in your Nix expressions!
with import <nixpkgs> { overlays = [ (import ./overlay.nix) ]; };
shab.renderText
"\${GREETING}\${TARGET:+, }\${TARGET}"
{ GREETING = "Hello"; TARGET = "world"; }
Use our minimal enterprise-ready docker images with only bash and shab:
$ cat example.shab | docker run -i --rm zimbatm/shab
Hello,
this is a shab templating example.
Usage: ./shab example.shab
Your hostname: 706d660042c4
Your user: unknown
Basically anything that bash can do.
$(...)Content type
Image
Digest
Size
5.4 MB
Last updated
over 5 years ago
docker pull zimbatm/shab