DevDevデブ!!

プログラミングのこととか書きます。多分。。。

pongo2のテンプレートファイルからレンダリングするやつ作った

pongo2のテンプレートファイルと、json or yamlのパラメータファイルを渡して、パラメータをテンプレートに埋め込んでレンダリングするコマンドを作りました。

github.com

就業時間に作ったので、会社のリポジトリだけど

pongo2って何よ?

pongo2はgo用のテンプレートライブラリで、pythonのjinja2互換のやつ

github.com

なぜ作ったか?

nginxとかfluentdの設定ファイルに環境別の値を埋め込みたいことがあるので、テンプレートファイルからレンダリングしたいときがあります。

そこで、goでプログラムを書いてレンダリングしようとすると、まあ、いちいちコンパイルするのダルいですよね?

じゃあ、pythonとかrubyとかのLLでやろうかとなるんですが、テンプレートファイルからのレンダリングのためだけにvirtualenvやらbundlerやらで環境作るのもそれはそれでダルい。

じゃあ、テンプレートファイルとパラメータファイルを食わせたらパラメータを埋め込んで出力してくれるコマンド作ればいいんじゃね?と思ったわけですね。

複数種類まとめて出力したい場合はよしなにシェルスクリプトを書いてくださいって感じで。

使い方

リポジトリのusageを読んでくだせえ。。。

感想

pongo2.Contextはmap[string]interface{}になっているので、jsonをmap[string]interface{}としてUnmarshalするだけで済むので、パラメータファイルの読み込みは楽にすんだ。