From 60c433d4ce680ddb2ca899b460e3714728cb221c Mon Sep 17 00:00:00 2001 From: Matt Hamilton Date: Tue, 29 Sep 2015 11:42:55 -0400 Subject: [PATCH] Move common promptpwd code to external function --- modules/prompt/functions/prompt_damoekri_setup | 15 ++------------- modules/prompt/functions/prompt_paradox_setup | 15 ++------------- modules/prompt/functions/prompt_sorin_setup | 15 ++------------- modules/prompt/functions/promptpwd | 14 ++++++++++++++ 4 files changed, 20 insertions(+), 39 deletions(-) create mode 100644 modules/prompt/functions/promptpwd diff --git a/modules/prompt/functions/prompt_damoekri_setup b/modules/prompt/functions/prompt_damoekri_setup index 58c4d35..89e4d75 100644 --- a/modules/prompt/functions/prompt_damoekri_setup +++ b/modules/prompt/functions/prompt_damoekri_setup @@ -11,23 +11,12 @@ # Load dependencies. pmodload 'helper' -function prompt_damoekri_pwd { - local pwd="${PWD/#$HOME/~}" - - if [[ "$pwd" == (#m)[/~] ]]; then - _prompt_damoekri_pwd="$MATCH" - unset MATCH - else - _prompt_damoekri_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" - fi -} - -function prompt_damoekri_precmd { +prompt_damoekri_precmd() { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS # Format PWD. - prompt_damoekri_pwd + _prompt_damoekri_pwd=$(promptpwd) # Get Git repository information. if (( $+functions[git-info] )); then diff --git a/modules/prompt/functions/prompt_paradox_setup b/modules/prompt/functions/prompt_paradox_setup index 9544415..c1a808d 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -59,18 +59,7 @@ function prompt_paradox_build_prompt { prompt_paradox_end_segment } -function prompt_paradox_pwd { - local pwd="${PWD/#$HOME/~}" - - if [[ "$pwd" == (#m)[/~] ]]; then - _prompt_paradox_pwd="$MATCH" - unset MATCH - else - _prompt_paradox_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" - fi -} - -function prompt_paradox_print_elapsed_time { +prompt_paradox_print_elapsed_time() { local end_time=$(( SECONDS - _prompt_paradox_start_time )) local hours minutes seconds remainder @@ -94,7 +83,7 @@ function prompt_paradox_precmd { unsetopt XTRACE KSH_ARRAYS # Format PWD. - prompt_paradox_pwd + _prompt_paradox_pwd=$(promptpwd) # Get Git repository information. if (( $+functions[git-info] )); then diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index e339dff..c4d12c3 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -32,18 +32,7 @@ # Load dependencies. pmodload 'helper' -function prompt_sorin_pwd { - local pwd="${PWD/#$HOME/~}" - - if [[ "$pwd" == (#m)[/~] ]]; then - _prompt_sorin_pwd="$MATCH" - unset MATCH - else - _prompt_sorin_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" - fi -} - -function prompt_sorin_git_info { +prompt_sorin_git_info() { if (( _prompt_sorin_precmd_async_pid > 0 )); then # Append Git status. if [[ -s "$_prompt_sorin_precmd_async_data" ]]; then @@ -77,7 +66,7 @@ function prompt_sorin_precmd { unsetopt XTRACE KSH_ARRAYS # Format PWD. - prompt_sorin_pwd + _prompt_sorin_pwd=$(promptpwd) # Define prompts. RPROMPT='${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}' diff --git a/modules/prompt/functions/promptpwd b/modules/prompt/functions/promptpwd new file mode 100644 index 0000000..8a1b909 --- /dev/null +++ b/modules/prompt/functions/promptpwd @@ -0,0 +1,14 @@ +# prompt setup function common to many prompts +# moved to external function to reduce code redundancy + +local current_pwd="${PWD/#$HOME/~}" +local ret_directory + +if [[ "$current_pwd" == (#m)[/~] ]]; then + ret_directory="$MATCH" + unset MATCH +else + ret_directory="${${${${(@j:/:M)${(@s:/:)current_pwd}##.#?}:h}%/}//\%/%%}/${${current_pwd:t}//\%/%%}" +fi + +print "$ret_directory"