diff options
author | romkatv <roman.perepelitsa@gmail.com> | 2019-12-19 19:28:00 +0300 |
---|---|---|
committer | romkatv <roman.perepelitsa@gmail.com> | 2019-12-19 19:28:00 +0300 |
commit | 61c268f7aecd3140b6d026844d97fe1e251153a9 (patch) | |
tree | 1639973a51589654c95544397c13e7e1f150b113 /internal/p10k.zsh | |
parent | fa665ae4a779e6f59b4f32718daae233ca1d994d (diff) | |
parent | 1086f747ba1400256482b1698319a7ce68a93395 (diff) |
Merge branch 'rsotnychenko-update-gcloud'
Diffstat (limited to 'internal/p10k.zsh')
-rw-r--r-- | internal/p10k.zsh | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/internal/p10k.zsh b/internal/p10k.zsh index b2907ecb..5235aa01 100644 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -3379,7 +3379,6 @@ prompt_azure() { prompt_gcloud() { unset P9K_GCLOUD_PROJECT P9K_GCLOUD_ACCOUNT (( $+commands[gcloud] )) || return - local cfg=${AZURE_CONFIG_DIR:-$HOME/.azure}/azureProfile.json if ! _p9k_cache_stat_get $0 ~/.config/gcloud/active_config ~/.config/gcloud/configurations/config_default; then _p9k_cache_stat_set "$(gcloud config get-value account 2>/dev/null)" "$(gcloud config get-value project 2>/dev/null)" fi @@ -3389,6 +3388,29 @@ prompt_gcloud() { _p9k_prompt_segment "$0" "blue" "white" "GCLOUD_ICON" 0 '' "${P9K_GCLOUD_ACCOUNT//\%/%%}:${P9K_GCLOUD_PROJECT//\%/%%}" } +prompt_gcloud_app() { + unset P9K_GCLOUD_APP_EMAIL P9K_GCLOUD_APP_ACCOUNT_TYPE P9K_GCLOUD_APP_ACCOUNT_TYPE_SHORT + (( $+commands[gcloud] )) || return + [[ ! -z $GOOGLE_APPLICATION_CREDENTIALS ]] || return + + if ! _p9k_cache_stat_get $0 $GOOGLE_APPLICATION_CREDENTIALS; then + local email="$(cat $GOOGLE_APPLICATION_CREDENTIALS | jq -r '.client_email')" + local account_type="$(cat $GOOGLE_APPLICATION_CREDENTIALS | jq -r '.type')" + local account_type_short + if [[ "$account_type" == "service_account" ]]; then + account_type_short="sa:" + fi + + # Service account name may contain only alpha-numeric chars and hyphens, so splitting by `.` gives us `service-account-name@project-id` + _p9k_cache_stat_set "${email%%.*}" "$account_type" "$account_type_short" + fi + [[ -n $_p9k_cache_val[1] || -n $_p9k_cache_val[2] || -n $_p9k_cache_val[3] ]] || return + P9K_GCLOUD_APP_EMAIL=$_p9k_cache_val[1] + P9K_GCLOUD_APP_ACCOUNT_TYPE=$_p9k_cache_val[2] + P9K_GCLOUD_APP_ACCOUNT_TYPE_SHORT=$_p9k_cache_val[3] + _p9k_prompt_segment "$0" "blue" "white" "GCLOUD_ICON" 0 '' "${P9K_GCLOUD_APP_ACCOUNT_TYPE_SHORT//\%/%%}${P9K_GCLOUD_APP_EMAIL//\%/%%}" +} + typeset -gra __p9k_nordvpn_tag=( P9K_NORDVPN_STATUS P9K_NORDVPN_TECHNOLOGY |