出来ないことがあるのは嫌だったので `--data` オプションを追加した。
今までconfigファイルを受け取ってその値を利用してrenderingするということができなかった。別の言い方をすると静的な参照関係を記述することは出来たけれど、動的な参照関係を記述することができなかった(個別にrootとなるようなファイルを定義しなおせば出来ないわけじゃないけれどつらい)。
とりあえずの対応ではあるけれど、--data
オプションを追加した。以下の様な形で使う。
$ zenmai main.yaml --data=config.json oauth: token: foo secret: '*secret*'
--data
オプションで渡されたjsonやyamlは辞書としてdataという変数に格納される(--data
は複数渡せる。複数渡した場合には$concatで結合される)。
なので使う場合には$get経由でアクセスする。main.yamlはこういう感じ。
# need: token, secret oauth: token: {$get: "data#/token"} secret: {$get: "data#/secret"}
ネストした値へのアクセスについてどうしようか悩んだのだけれど。json referenceの変形の様な形で対応した(foo["bar"]["boo"]
みたいな形式に対応するのがだるいというのと。pythonでは foo.bar.boo
と区別されるので.を利用したくはないという気持ちがあった)。
とりあえず設定ファイルをjsonでも渡せるようにしている(拡張子を見てよしなにやってくれている)
{ "token": "foo", "secret": "*secret*" }