Runner in the High

技術のことをかくこころみ

gcloudコマンドの対象プロジェクトIDを関東最速で取得する

iTerm2にはステータスバーという機能があり、そこで現在のgcloudのCLIで操作対象になっているプロジェクトIDを出すと非常に捗る。

f:id:IzumiSy:20191106135443p:plain

単純に考えるとgcloudコマンドのconfigオプションを使い、プロジェクトIDの取得ができるだろうなと思うが

gcloud config list project --format='value(core.project)'

いかんせん、これがめちゃくちゃ遅い。Pythonで作られているっぽいが、そのせいなのかは分からない。だが、とにかく遅い。1-2秒は普通にかかる。iTerm2はステータスバーに表示するデータをディレクトリ移動のたびに取得するのでcdするたびに数秒まってると日が暮れてしまう。

同じようなことをしている先輩が会社にいたので、どうやっているか聞いてみたところ、以下のようなコマンドで取得しているらしい。これでかなり速度を改善できた。

gcp_profile=$(cat $HOME/.config/gcloud/active_config)
gcp_project=$(awk '/project/{print $3}' $HOME/.config/gcloud/configurations/config_$gcp_profile)

catとawkの組み合わせのほうがよっぽど早いのは言うまでもない。