]> arthur.barton.de Git - ax-zsh.git/blobdiff - core/50_prompt/50_prompt.zshrc
Refactor prompt functions
[ax-zsh.git] / core / 50_prompt / 50_prompt.zshrc
index 5dc89d93c37f8460e3543fe4657d908b846266d8..6f8da72b3c11e2a086cd3ed2f2cd02e505ada5d6 100644 (file)
@@ -14,18 +14,18 @@ function ax_logname_prompt_root() {
        return 0
 }
 
-ax_logname_prompt_functions=($ax_logname_prompt_functions ax_logname_prompt_root)
-
-function ax_logname_prompt() {
+function ax_logname_prompt_yn() {
        local func
        local p
        for func ($ax_logname_prompt_functions); do
-               p=$( $func ) || continue
-               echo "${ZSH_THEME_LOGNAME_PROMPT_PREFIX}${p}${ZSH_THEME_LOGNAME_PROMPT_SUFFIX}"
+               $func || continue
+               echo "${ZSH_THEME_LOGNAME_PROMPT_PREFIX}${1:-$LOGNAME}${ZSH_THEME_LOGNAME_PROMPT_SUFFIX}"
                return
        done
 }
 
+ax_logname_prompt_functions=()
+
 # Hostname
 
 ZSH_THEME_HOSTNAME_PROMPT_PREFIX=""
@@ -33,22 +33,21 @@ ZSH_THEME_HOSTNAME_PROMPT_SUFFIX="%{$reset_color%}:"
 
 function ax_hostname_prompt_root() {
        (( $UID == 0 )) || return 1
-       echo "$SHORT_HOST"
        return 0
 }
 
-ax_hostname_prompt_functions=($ax_hostname_prompt_functions ax_hostname_prompt_root)
-
-function ax_hostname_prompt() {
+function ax_hostname_prompt_yn() {
        local func
        local p
        for func ($ax_hostname_prompt_functions); do
-               p=$( $func ) || continue
-               echo "${ZSH_THEME_HOSTNAME_PROMPT_PREFIX}${p}${ZSH_THEME_HOSTNAME_PROMPT_SUFFIX}"
+               $func || continue
+               echo "${ZSH_THEME_HOSTNAME_PROMPT_PREFIX}${1:-$SHORT_HOST}${ZSH_THEME_HOSTNAME_PROMPT_SUFFIX}"
                return
        done
 }
 
+ax_hostname_prompt_functions=()
+
 # VCS
 
 ZSH_THEME_VCS_PROMPT_PREFIX="(%{$fg_no_bold[yellow]%}"
@@ -69,6 +68,8 @@ function ax_vcs_prompt() {
        done
 }
 
+ax_vcs_prompt_functions=()
+
 # Options and defaults
 
 setopt PROMPT_SUBST