今日は$formatと--dataオプションの取り扱いに細かな調整を加えた
今日は$formatと–dataオプションの取り扱いに細かな調整を加えた。具体的には以下の様な感じ。
- $formatの対象を文字列だけから拡張した
--data
でファイル名だけではなく json referenceを取れるようにした
$formatの対象を文字列だけから拡張した
今までは$formatが受け入れるのは文字列だけだった。
one: $format: "{prefix}1" prefix: no.
no.1
これをdictまたはlistを受け取れるようにした。例えばlistの場合。
items: $format: - "{prefix}1" - "{prefix}2" - "{prefix}3" prefix: no.
items: - no.1 - no.2 - no.3
あるいはdictの場合。
items: $format: one: "{prefix}1" two: "{prefix}2" three: "{prefix}3" prefix: no.
items: one: no.1 two: no.2 three: no.3
--data
でファイル名だけではなく json referenceを取れるようにした
--data
でファイル名だけではなく json referenceを取れるようにした。これにより、細かな設定毎にファイルを分ける必要がなくなった。
また、 --data
は複数取れるので、互いに独立な設定を適宜組み合わせる感じのmixinのようなことも出来るようになった。
mixinのようなことというのはこういう感じ。例えば以下のようなconfig.yamlがあるとする。これが --data
の対象になる。
version: dev: prefix: dev staging: prefix: staging infra: local: host: localhost cloud: host: example.com
ここでversion用の設定とinfra用の設定はそれぞれ独立している。dev-local
, dev-cloud
, staging-local
, staging-cloud
の4種類の可能性が存在。
これを適宜組み合わせて作ることが出来る。
例えば、それを確認するために、以下のようなmain.yamlを作る。
# これはdebug用のyaml `--data` の値を確認できるようにするだけのもの $get: data
それぞれ4つのバリエーションが試せるようになった。
$ zenmai main.yaml --data "config.yaml#/version/dev" --data "config.yaml#/infra/local" prefix: dev host: localhost $ zenmai main.yaml --data "config.yaml#/version/dev" --data "config.yaml#/infra/cloud" prefix: dev host: example.com $ zenmai main.yaml --data "config.yaml#/version/staging" --data "config.yaml#/infra/local" prefix: staging host: localhost $ zenmai main.yaml --data "config.yaml#/version/staging" --data "config.yaml#/infra/cloud" prefix: staging host: example.com
今週
今週は大きな機能拡張ではなくこういう感じの細かな調整に時間を使う予定(たぶんきっと)