diff options
author | romkatv <roman.perepelitsa@gmail.com> | 2020-01-02 20:03:59 +0300 |
---|---|---|
committer | romkatv <roman.perepelitsa@gmail.com> | 2020-01-02 20:13:40 +0300 |
commit | d8b847c67fe7952e15ba8946d49216783d4a96d0 (patch) | |
tree | f0de50d5bad49b6514e55970c52700110e27934e /internal/p10k.zsh | |
parent | 20a17daf159131b0354fcbfa94cd90772c8d37d0 (diff) |
add jenv prompt segment; see #342
Diffstat (limited to 'internal/p10k.zsh')
-rw-r--r-- | internal/p10k.zsh | 51 |
1 files changed, 50 insertions, 1 deletions
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' |