4 ms·
At first glance, I don't see that m4 does anything jinja2 (Ansible's templating system) doesn't do better.
by mercurial 12y ago
At first glance, I don't see that m4 does anything jinja2 (Ansible's templating system) doesn't do better.
- e12e 12y agoIf you're going to use shell and not ansible, then why not use shell with m4. I'm not suggesting shell+m4 is better than ansible, or that ansible+m4 (wtf?! right?) would be a good idea. Just why not use a readily available template/macro language along with shell scripts, if you've decided to use shell scripts. I suppose you could use jinja and bash -- but why pull in two full interpreters as a dependency?
- 23david 12y agoIf we're discussing templating languages, I definitely prefer Mako over Jinja2 and think it's much more appropriate for devops templating. But Jinja2 is the default in a lot of projects, including Saltstack and Ansible, and it's hard to fight the currents all the time.
- mercurial 12y agoWhat do you like more about Mako? I haven't used it in years, but I remember it being fairly similar in capabilities to Jinja2.
- 23david 12y agoNot sure if it's a good idea for me to wade into that particular religious war... :-) Some good comments on both sides here: http://www.quora.com/Python-Web-Frameworks/What-are-the-advantages-and-disadvantages-of-using-Mako-vs-Jinja2 http://www.quora.com/Python-Web-Frameworks/What-are-the-adva... http://www.reddit.com/r/Python/comments/ktjm2/jinja2_or_mako_templating/ http://www.reddit.com/r/Python/comments/ktjm2/jinja2_or_mako... http://stackoverflow.com/questions/3435972/mako-or-jinja2 http://stackoverflow.com/questions/3435972/mako-or-jinja2
- e12e 12y agoAs I mentioned in another comment, I'm not suggesting using m4 with/in-place of ansible -- rather as a compliment to the shell. I suppose one could use jinja2 stand-alone with the shell -- but then you get the python dependency etc... I meant that m4 might be a better fit to go along with bash/ksh. Eg: dpkg-query --show \ --showformat='${Package;6} ${Installed-Size;4}^L\n' \ m4 python2.7-minimal dash bash mksh ksh \| sort -n -k2 dash 212 m4 382 mksh 878 ksh 3110 bash 3941 python 5456 (Not that you can avoid python-minmal on Debian - but in a chroot you might, etc). As for can and cannot do, consider this "feature" of m4: $ cat <<eof|m4 -Dme=you -Dpredictable=surprise me=predictable eof you=surprise Again, I'm not suggesting m4+dash is a great idea vs ansible -- just clarifying a couple of things...