zshrc: eliminate file access on precmd()
authorStefan Huber <shuber@sthu.org>
Mon, 24 Dec 2012 09:21:19 +0000 (10:21 +0100)
committerStefan Huber <shuber@sthu.org>
Mon, 24 Dec 2012 09:21:19 +0000 (10:21 +0100)
dotfiles/shell/zshrc

index 9e9b7fa7d94742fa41fb39b47ecfca182cc8886e..cc00a537b9f712aa9dc7bfd17041c81b7ab39ea9 100644 (file)
@@ -94,9 +94,9 @@ zstyle ':vcs_info:*' max-exports 1
 function setprompt()
 {
        # default: " (%s)-[%b|%a]%u%c-"
-       zstyle ':vcs_info:*' actionformats "${PR_YELLOW}%s:%b|%a${PR_NO_COLOUR} "
+       zstyle ':vcs_info:*' actionformats "${PR_YELLOW}%s:%b|%a${PR_NO_COLOUR}"
        # default: " (%s)-[%b]%u%c-"
-       zstyle ':vcs_info:*' formats       "${PR_YELLOW}%s:%b${PR_NO_COLOUR} "
+       zstyle ':vcs_info:*' formats       "${PR_YELLOW}%s:%b${PR_NO_COLOUR}"
 
        setopt PROMPT_SUBST
        PROMPT='%(!.$PR_RED.$PR_GREEN)%n@%m $PR_BLUE%1~ %# $PR_NO_COLOUR'
@@ -104,18 +104,21 @@ function setprompt()
 }
 setprompt
 
+# Obtain the autofs mountpoints
+autofs_mp=""
+[ -r /etc/auto.master ] && autofs_mp=$(grep -e "^/" /etc/auto.master)
 
 function precmd ()
 {
        local exitstatus="${?}"
-       PR_STUFF=" "
+       PR_STUFF=""
        if [[ 0 -ne "${exitstatus}" ]] ; then
-               PR_STUFF="${PR_RED}RET ${exitstatus}${PR_NO_COLOUR}"
+               PR_STUFF=" ${PR_RED}RET ${exitstatus}${PR_NO_COLOUR}"
        fi
 
        # autofs always complains not being able to mount .hg/ and the like
-       if [ -r /etc/auto.master ] && grep -qe "^$PWD\s" /etc/auto.master; then
-               vcs_info_msg_0_=""
+       if echo "$autofs_mp" | grep -qe "^$PWD\s"; then
+               vcs_info_msg_0_="${PR_YELLOW}[autofs]${PR_NO_COLOUR}"
        else
                vcs_info
        fi