Jinja CLI - best practise?

58 views
Skip to first unread message

Věroslav Kaplan

unread,
Jul 4, 2016, 5:17:26 AM7/4/16
to Django CS
Ahoj vespolek,

potřebuju z shellového skriptu generovat nějaké textové soubory podle šablon. Shell expansion je pro moje účely už moc slabé. 

V ideálním případě hledám něco, jako bylo dávno `cheetah fill` z CheetahTemplates.  
Cheetah od roku 2010 spí tvrdým spánkem a já bych radši použil něco aktuálního - asi Jinja.

Existuje nějaké best-practse CLI řešení pro Jinja a CLI?

Používá někdo něco podobného?

Za odpovědi předem děkuju

​Věroš
--

Petr Viktorin

unread,
Jul 4, 2016, 7:54:18 AM7/4/16
to djan...@googlegroups.com, Věroslav Kaplan
On 07/04/2016 11:17 AM, Věroslav Kaplan wrote:
> Ahoj vespolek,
>
> potřebuju z shellového skriptu generovat nějaké textové soubory podle
> šablon. Shell expansion je pro moje účely už moc slabé.
>
> V ideálním případě hledám něco, jako bylo dávno `cheetah fill` z
> CheetahTemplates.
> Cheetah od roku 2010 spí tvrdým spánkem a já bych radši použil něco
> aktuálního - asi Jinja.
>
> Existuje nějaké best-practse CLI řešení pro Jinja a CLI?
> Našel jsem https://github.com/kolypto/j2cli a
> https://github.com/mattrobenolt/jinja2-cli
>
> Používá někdo něco podobného?

Já tohle občas potřebuju, ale zatím vždycky znova vynalézám kolo. Přijde
jako schůdná cesta, vzhledem k tomu, že kolo má asi deset řádků, a že
většinou stejně chci vyčistit vstupní data nebo generovat víc souborů v
cyklu nebo něco jiného co se mi už dělá líp v Python u než v CLI/Bashi.



import json
import jinja2

with open("template.txt") as f:
template = jinja2.Template(f.read())

with open("data.json") as f:
data = json.load(f)

with open("result.txt", "w") as f:
f.write(template.render(**data))


Vláďa Macek

unread,
Jul 4, 2016, 12:45:03 PM7/4/16
to djan...@googlegroups.com
On 4.7.2016 11:17, Věroslav Kaplan wrote:
> potřebuju z shellového skriptu generovat nějaké textové soubory podle
> šablon. Shell expansion je pro moje účely už moc slabé.

Ahoj.

Ze shellu? Dál totiž používáš Python. :-)

Nevím, jestli znáš všechny možnosti bashe vč.
http://tldp.org/LDP/abs/html/here-docs.html

Ale proč vynalézat kolo, když
https://en.wikipedia.org/wiki/M4_(computer_language) je s námi už bezmála
40 let? :-)

Ještě existuje https://en.wikipedia.org/wiki/C_preprocessor :-)

Geeky, right?

Vláďa

Věroslav Kaplan

unread,
Jul 4, 2016, 4:23:09 PM7/4/16
to Django CS
Ahoj a díky za nápady,

nakonec zůstanu u j2cli z GitHubu, protože pěkně hraje s proměnnými prostředí (a to se dneska v těch Dockerech hodí) a Jinja templates jsou přiměřěně čitelné i po půl roce od napsání.

C preprocessor myslím není turingovsky silný a zároveň čitelný (i když jsem v něm blahé paměti nahackoval pěkné věci). 
Shellové expanze znám víc než bych chtěl, ale taky myslím nejsou dost silné. M4 mne naštěstí nenapadl...

S pozdravem

--VK


--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/577A928E.6040707%40sandbox.cz.
Další možnosti najdete na adrese https://groups.google.com/d/optout.



--
Reply all
Reply to author
Forward
0 new messages