From 4c12eb7224b053a511a06da0b3efe26f067a4942 Mon Sep 17 00:00:00 2001 From: romkatv Date: Mon, 19 Aug 2019 16:07:59 +0200 Subject: [PATCH] add terraform prompt segment --- config/p10k-classic.zsh | 7 +++++++ config/p10k-lean.zsh | 7 +++++++ internal/icons.zsh | 5 +++++ internal/p10k.zsh | 12 ++++++++++++ 4 files changed, 31 insertions(+) diff --git a/config/p10k-classic.zsh b/config/p10k-classic.zsh index 532a1a08..5eb4f7de 100644 --- a/config/p10k-classic.zsh +++ b/config/p10k-classic.zsh @@ -56,6 +56,7 @@ fi rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) rvm # ruby version from rvm (https://rvm.io) kubecontext # current kubernetes context (https://kubernetes.io/) + terraform # terraform workspace (https://www.terraform.io) context # user@host nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) ranger # ranger shell (https://github.com/ranger/ranger) @@ -540,6 +541,12 @@ fi # Custom icon. # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + ################[ terraform: terraform workspace (https://www.terraform.io) ]################# + # Terraform color. + typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38 + # Custom icon. + # typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐' + #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# # Kubernetes context classes for the purpose of using different colors, icons and expansions with # different contexts. diff --git a/config/p10k-lean.zsh b/config/p10k-lean.zsh index f55781a9..8704c59b 100644 --- a/config/p10k-lean.zsh +++ b/config/p10k-lean.zsh @@ -56,6 +56,7 @@ fi rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) rvm # ruby version from rvm (https://rvm.io) kubecontext # current kubernetes context (https://kubernetes.io/) + terraform # terraform workspace (https://www.terraform.io) context # user@host nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) ranger # ranger shell (https://github.com/ranger/ranger) @@ -595,6 +596,12 @@ fi # Custom prefix. # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat ' + ################[ terraform: terraform workspace (https://www.terraform.io) ]################# + # Terraform color. + typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38 + # Custom icon. + # typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐' + ###############################[ public_ip: public IP address ]############################### # Public IP color. typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=94 diff --git a/internal/icons.zsh b/internal/icons.zsh index 3693bfb3..52155cab 100755 --- a/internal/icons.zsh +++ b/internal/icons.zsh @@ -109,6 +109,7 @@ function _p9k_init_icons() { JAVA_ICON '\U2615' # ☕︎ LARAVEL_ICON '' RANGER_ICON '\u2B50' # ⭐ + TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️ ) ;; 'awesome-fontconfig') @@ -207,6 +208,7 @@ function _p9k_init_icons() { JAVA_ICON '\U2615' # ☕︎ LARAVEL_ICON '' RANGER_ICON '\u2B50' # ⭐ + TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️ ) ;; 'awesome-mapped-fontconfig') @@ -309,6 +311,7 @@ function _p9k_init_icons() { JAVA_ICON '\U2615' # ☕︎ LARAVEL_ICON '' RANGER_ICON '\u2B50' # ⭐ + TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️ ) ;; 'nerdfont-complete'|'nerdfont-fontconfig') @@ -408,6 +411,7 @@ function _p9k_init_icons() { JAVA_ICON '\U2615' # ☕︎ LARAVEL_ICON '\ue73f ' #  RANGER_ICON '\u2B50' # ⭐ + TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️ ) ;; *) @@ -506,6 +510,7 @@ function _p9k_init_icons() { JAVA_ICON '\U2615' # ☕︎ LARAVEL_ICON '' RANGER_ICON '\u2B50' # ⭐ + TERRAFORM_ICON 'TF' ) ;; esac diff --git a/internal/p10k.zsh b/internal/p10k.zsh index 7ba7b69d..698a45c6 100755 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -3039,6 +3039,18 @@ function prompt_ranger() { _p9k_prompt_segment $0 $_p9k_color1 yellow RANGER_ICON 0 '' $RANGER_LEVEL } +function prompt_terraform() { + (( $+commands[terraform] )) || return + local ws=default + if [[ -n $TF_WORKSPACE ]]; then + ws=$TF_WORKSPACE + else + local f=${TF_DATA_DIR:-.terraform}/environment + [[ -r $f ]] && _p9k_read_file $f && ws=$_p9k_ret + fi + [[ $ws == default ]] || _p9k_prompt_segment $0 $_p9k_color1 blue TERRAFORM_ICON 0 '' $ws +} + _p9k_preexec() { if (( $+_p9k_real_zle_rprompt_indent )); then if [[ -n $_p9k_real_zle_rprompt_indent ]]; then