Goのtext/template形式のテンプレートファイルにjsonデータを適用するコマンドラインツールtteを作った

  • 2
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

なぜ

動的に設定ファイルを作るときに単純な変数展開程度ならシェルスクリプトのヒアドキュメントで十分ですが、ループが必要になるとテンプレートエンジンを使いたくなってきます。

ということで、Goのtext/template形式のテンプレートファイルにjsonデータを適用するコマンドラインツールtteを作ってみました。
tteはtext template executorの略です。

ソースは
https://github.com/hnakamur/tte
にあります。

インストール

OS X, Linux, WindowsではバイナリファイルをダウンロードすればOKです。

OS X

curl -O https://hnakamur.github.io/tte/download/darwin_amd64/tte

Linux 64bit

curl -O https://hnakamur.github.io/tte/download/linux_amd64/tte

Linux 32bit

curl -O https://hnakamur.github.io/tte/download/linux_386/tte

Windows 64bit

curl -O https://hnakamur.github.io/tte/download/windows_amd64/tte

Windows 32bit

curl -O https://hnakamur.github.io/tte/download/windows_386/tte

使い方の例

example/data.json

{
  "persons": [
    {"name": "Alice"},
    {"name": "Bob"},
    {"name": "Charlie"}
  ]
}

example/single.tpl

{{ range $i, $_ := .persons }}{{ if gt $i 0 }}
{{ end }}Hello, {{ .name }}!{{ end }}

実行例

$ ./tte -j example/data.json example/single.tpl
Hello, Alice!
Hello, Bob!
Hello, Charlie!