LoginSignup
3
2

More than 3 years have passed since last update.

jsonのkey:valueを環境変数にexportしたい

Last updated at Posted at 2018-09-21

素でやると

こう。

$ export $(echo '{"hoge": 1, "hoga":2}' | jq -r 'keys[] as $k | "\($k)=\(.[$k])"')
$ echo $hoge $hoga
1 2

スクリプトにする

.source で呼び出して使う。

json_to_env.sh
# stdinから受け取ったjsonを環境変数にexport
export $(jq -r 'keys[] as $k | "\($k)=\(.[$k])"')

なんでこんなのが必要なの?

digdag の for_each にタプルを渡したいんだけどできなそうなので試行錯誤してみた結果、これでいけた。
ダーティハックっぽいけど。

a.dig
_export:
  vars:
    - hoge: 111
      hoga: 222
    - hoge: 333
      hoga: 444
    - hoge: 555
      hoga: 666

+task:
  for_each>:
    var: ${vars}  # ← {key:value} のjsonで渡されてくる
  _do:
    sh>: . json_to_env.sh <<< $var && echo $hoge $hoga
実行
digdag run -a -E a.dig
3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2