結論
#!/bin/zsh
function fix () {
expect -c "
spawn firebase database:update $1 <JSONのパス>
expect \"(y/N)\"
send \"y\n\"
expect \"View data at\"
exit 0
"
}
# ↓これをループ処理でよしなにしてどうぞ
fix <DB内のパス>
あってないような説明(ダブルミーニング)
-
firebase database:update
で任意のパスの値を書き換えられるぞー。-
update
とset
の違いは公式で確認してくれよな。
-
-
expect
コマンドを使うとCLIの操作を自動化できるぞー。 - expectはインストールしろみたいな情報もあるけど多分入ってるから
man expect
で確認してどうぞ。 -
send \"y\n\"
の\n
がEnterと同じ意味やで。 -
expect
の引数は適当でも意外とマッチするぜ。 -
exit
のタイミングは考えないと処理が途中で終わっちゃうね。まあTry&Errorしてみよか。
おわりに
- シェルクソ雑魚パーソンなので謎に時間を消費したのにむしゃくしゃして書きました。
- Firebase-CLIの公式リファレンス、説明少なくね?(まあそんなもんか?)