Zsh+Zprezto プロンプトに接続中のGCPプロジェクトIDを表示する
最近Google Cloud Platform をよく触っているのだけどどのプロジェクトに居るのかよく分からなくなるのとプロジェクトID調べるの面倒なのでプロンプトに表示しています。
普段 zsh + zprezto でプロンプトを作っているのですが GCPのプロジェクトIDを表示したかったので以下の関数を追加しました。
上記の senpai を参考に以下の関数をちょっと変更しています。
# Google Cloud Platform: info
gcp_info() {
if [ -f "$HOME/.config/gcloud/active_config" ]; then
gcp_profile=$(cat $HOME/.config/gcloud/active_config)
gcp_project=$(awk '/project/{print $3}' $HOME/.config/gcloud/configurations/config_$gcp_profile)
if [ ! -z ${gcp_project} ]; then
echo "${_prompt_my_colors[1]}ⓖ %f${gcp_project}"
fi
fi
}
これを自分の利用している /Users/hideaki/.zprezto/modules/prompt/functions/prompt_my_setup に追記してみました。ちなみにこういうふうにしておくと関数が読み込まれているのでいつでも gcp_info とシェルから結果を確認することが出来てその意味でも便利です。
PROMPT="%F{135}%n%f at %F{166}%m%f in %F{118}${_prompt_my_pwd}%f ${_my_cloudinfo}%f ${vcs_info_msg_0_}
$python_info[virtualenv]${editor_info[keymap]}"
プロンプトはこんな感じですね。最近は2行にしているのが好みです。
あと関係ないけど zprezto のテーマの半分くらいはgit リポジトリの表示に git-info というモジュールを利用しているのだけどこれが旨く動かないみたいでした(いつから動かないのか、最初からなのか)私は、zshの標準?の vcs_info を利用してるテーマを利用しているので気が付きませんでした。