zshプロンプトにGCPプロジェクトIDを表示


TL;DR

.bashrc
# PROJECT IDをプロンプトの右側に表示
is_first=true
function gcp_project_id() {
  if [ -f "$HOME/.config/gcloud/active_config" ]; then
    gcp_profile=$(cat $HOME/.config/gcloud/active_config)
    project_id=$(awk '/project/{print $3}' $HOME/.config/gcloud/configurations/config_$gcp_profile)

    if "${is_first}"; then
      is_first=false
      RPROMPT=${RPROMPT}%F{039}'${project_id}'%f
    fi
  fi
}
autoload -Uz add-zsh-hook
add-zsh-hook precmd gcp_project_id

プロジェクトID:wmetaw-gke-sampleをGCP色っぽく表示している

カラーは%F{039}を設定したい数値に変更 ※後述

モチベーション

GCP似て複数プロジェクトを横断する機会が多いと、アクティブなプロジェクトがわからなくなる時が多く
その度に gcloud config list で状況を確認するのが面倒だったので、プロンプトの右側に常時表示したかった。

カラー変更

全256色を表示するワンライナー
for c in {000..255}; do echo -n "\e[38;5;${c}m $c" ; [ $(($c%16)) -eq 15 ] && echo;done;echo

zsh で全 256 色を試しに表示みたい
https://qiita.com/k_ui/items/b02b93e3af13023c0bfd