jsonnet
手っ取り早く試すならgo版もあり
jsonを出力するのに特化した言語
設定ファイルとかで使える。
直接jsonnetを処理できる処理系ならjsonnetのコードが直接設定ファイルになるといえる。
jsonにロジックを組み込める
if, ==,+,-,boolean,配列,range等あり
関数定義可能
動的なjson fileの生成でも使える
CIで特定のバージョン情報やタグ情報を外部から挿入して設定を動的に自動更新できる
code:=hoge.jsonnet
# これで引数argを受け取って処理をしたjsonを返す関数となる
# Top levelで関数となっている。この関数の引数はTop-Level Argumentsと呼ばれる
function(arg)
{
処理
}
jsonnet -tla-str arg=moge hoge.jsonnet
Top-Level Argumentsは-tla-str optionで指定できる
変数定義
local
ケツカンマあり
コメントあり
フィールドにはクオート不要
複数行対応
継承あり
+:
jsonnet同時の集合演算可能
import
例外処理あり
jsonnetfmtというformatterあり
selfで自己参照可能