summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorromkatv <roman.perepelitsa@gmail.com>2020-01-02 20:03:59 +0300
committerromkatv <roman.perepelitsa@gmail.com>2020-01-02 20:13:40 +0300
commitd8b847c67fe7952e15ba8946d49216783d4a96d0 (patch)
treef0de50d5bad49b6514e55970c52700110e27934e
parent20a17daf159131b0354fcbfa94cd90772c8d37d0 (diff)
add jenv prompt segment; see #342
-rw-r--r--config/p10k-classic.zsh12
-rw-r--r--config/p10k-lean.zsh12
-rw-r--r--config/p10k-rainbow.zsh13
-rw-r--r--internal/p10k.zsh51
4 files changed, 87 insertions, 1 deletions
diff --git a/config/p10k-classic.zsh b/config/p10k-classic.zsh
index 3d69ec0f..2d3fe495 100644
--- a/config/p10k-classic.zsh
+++ b/config/p10k-classic.zsh
@@ -63,6 +63,7 @@
rvm # ruby version from rvm (https://rvm.io)
fvm # flutter version management (https://github.com/leoafarias/fvm)
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
+ jenv # java version from jenv (https://github.com/jenv/jenv)
kubecontext # current kubernetes context (https://kubernetes.io/)
terraform # terraform workspace (https://www.terraform.io)
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
@@ -732,6 +733,17 @@
# Custom icon.
# typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################
+ # Java color.
+ typeset -g POWERLEVEL9K_JENV_FOREGROUND=32
+ # Hide java version if it doesn't come from one of these sources.
+ typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)
+ # If set to false, hide java version if it's the same as global:
+ # $(jenv version-name) == $(jenv global).
+ typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
# Terraform color.
typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38
diff --git a/config/p10k-lean.zsh b/config/p10k-lean.zsh
index 07aac5aa..e8bc2ccb 100644
--- a/config/p10k-lean.zsh
+++ b/config/p10k-lean.zsh
@@ -63,6 +63,7 @@
rvm # ruby version from rvm (https://rvm.io)
fvm # flutter version management (https://github.com/leoafarias/fvm)
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
+ jenv # java version from jenv (https://github.com/jenv/jenv)
kubecontext # current kubernetes context (https://kubernetes.io/)
terraform # terraform workspace (https://www.terraform.io)
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
@@ -708,6 +709,17 @@
# Custom icon.
# typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################
+ # Java color.
+ typeset -g POWERLEVEL9K_JENV_FOREGROUND=32
+ # Hide java version if it doesn't come from one of these sources.
+ typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)
+ # If set to false, hide java version if it's the same as global:
+ # $(jenv version-name) == $(jenv global).
+ typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_JENV_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-rainbow.zsh b/config/p10k-rainbow.zsh
index ec7b0c76..d2558579 100644
--- a/config/p10k-rainbow.zsh
+++ b/config/p10k-rainbow.zsh
@@ -63,6 +63,7 @@
rvm # ruby version from rvm (https://rvm.io)
fvm # flutter version management (https://github.com/leoafarias/fvm)
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
+ jenv # java version from jenv (https://github.com/jenv/jenv)
kubecontext # current kubernetes context (https://kubernetes.io/)
terraform # terraform workspace (https://www.terraform.io)
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
@@ -753,6 +754,18 @@
# Custom icon.
# typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################
+ # Java color.
+ # typeset -g POWERLEVEL9K_JENV_FOREGROUND=1
+ # typeset -g POWERLEVEL9K_JENV_BACKGROUND=7
+ # Hide java version if it doesn't come from one of these sources.
+ typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)
+ # If set to false, hide java version if it's the same as global:
+ # $(jenv version-name) == $(jenv global).
+ typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
# Terraform color.
# typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=4
diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index 2fcf2fc4..4c20a8e6 100644
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -2204,6 +2204,53 @@ prompt_luaenv() {
_p9k_prompt_segment "$0" blue "$_p9k_color1" 'LUA_ICON' 0 '' "${v//\%/%%}"
}
+function _p9k_read_jenv_version_file() {
+ [[ -r $1 ]] || return
+ local rest
+ read _p9k_ret rest <$1 2>/dev/null
+ [[ -n $_p9k_ret ]]
+}
+
+function _p9k_jenv_global_version() {
+ _p9k_read_jenv_version_file ${JENV_ROOT:-$HOME/.jenv}/version || _p9k_ret=system
+}
+
+################################################################
+# Segment to display jenv information
+# https://github.com/jenv/jenv
+prompt_jenv() {
+ (( $+commands[jenv] || $+functions[jenv] )) || return
+ if [[ -n $JENV_VERSION ]]; then
+ (( ${_POWERLEVEL9K_JENV_SOURCES[(I)shell]} )) || return
+ local v=$JENV_VERSION
+ else
+ (( ${_POWERLEVEL9K_JENV_SOURCES[(I)local|global]} )) || return
+ [[ $JENV_DIR == /* ]] && local dir=$JENV_DIR || local dir="$_p9k_pwd_a/$JENV_DIR"
+ while true; do
+ if _p9k_read_jenv_version_file $dir/.java-version; then
+ (( ${_POWERLEVEL9K_JENV_SOURCES[(I)local]} )) || return
+ local v=$_p9k_ret
+ break
+ fi
+ if [[ $dir == / ]]; then
+ (( _POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW )) || return
+ (( ${_POWERLEVEL9K_JENV_SOURCES[(I)global]} )) || return
+ _p9k_jenv_global_version
+ local v=$_p9k_ret
+ break
+ fi
+ dir=${dir:h}
+ done
+ fi
+
+ if (( !_POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW )); then
+ _p9k_jenv_global_version
+ [[ $v == $_p9k_ret ]] && return
+ fi
+
+ _p9k_prompt_segment "$0" white red 'JAVA_ICON' 0 '' "${v//\%/%%}"
+}
+
################################################################
# Segment to display chruby information
# see https://github.com/postmodern/chruby/issues/245 for chruby_auto issue with ZSH
@@ -4983,6 +5030,8 @@ _p9k_init_params() {
_p9k_declare -a POWERLEVEL9K_RBENV_SOURCES -- shell local global
_p9k_declare -b POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW 0
_p9k_declare -a POWERLEVEL9K_LUAENV_SOURCES -- shell local global
+ _p9k_declare -b POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW 0
+ _p9k_declare -a POWERLEVEL9K_JENV_SOURCES -- shell local global
_p9k_declare -b POWERLEVEL9K_RVM_SHOW_GEMSET 0
_p9k_declare -b POWERLEVEL9K_RVM_SHOW_PREFIX 0
_p9k_declare -b POWERLEVEL9K_CHRUBY_SHOW_VERSION 1
@@ -5569,7 +5618,7 @@ _p9k_must_init() {
[[ $sig == $_p9k__param_sig ]] && return 1
_p9k_deinit
fi
- _p9k__param_pat=$'v19\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
+ _p9k__param_pat=$'v20\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
_p9k__param_pat+=$'${#parameters[(I)POWERLEVEL9K_*]}\1${(%):-%n%#}\1$GITSTATUS_LOG_LEVEL\1'
_p9k__param_pat+=$'$GITSTATUS_ENABLE_LOGGING\1$GITSTATUS_DAEMON\1$GITSTATUS_NUM_THREADS\1'
_p9k__param_pat+=$'$DEFAULT_USER\1${ZLE_RPROMPT_INDENT:-1}\1$P9K_SSH\1$__p9k_ksh_arrays'