summaryrefslogtreecommitdiff
path: root/plugins/git-prompt/git-prompt.plugin.zsh
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2015-08-01 18:09:20 +0200
committerMarc Cornellà <marc.cornella@live.com>2015-08-16 23:02:14 +0200
commit6ff53d173b374e5ebbdff141059c71e4e14aa62e (patch)
tree3780c06e390849cd3ee6d6984a86ff4cc08130ea /plugins/git-prompt/git-prompt.plugin.zsh
parent1d133ff11fe187ee7255637d51165013b4e6a738 (diff)
downloadzsh-6ff53d173b374e5ebbdff141059c71e4e14aa62e.tar.gz
zsh-6ff53d173b374e5ebbdff141059c71e4e14aa62e.tar.bz2
zsh-6ff53d173b374e5ebbdff141059c71e4e14aa62e.zip
Cleanup of git-prompt plugin file
Diffstat (limited to 'plugins/git-prompt/git-prompt.plugin.zsh')
-rw-r--r--plugins/git-prompt/git-prompt.plugin.zsh110
1 files changed, 47 insertions, 63 deletions
diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh
index ccba22dc5..5175bf70f 100644
--- a/plugins/git-prompt/git-prompt.plugin.zsh
+++ b/plugins/git-prompt/git-prompt.plugin.zsh
@@ -1,24 +1,13 @@
# ZSH Git Prompt Plugin from:
# http://github.com/olivierverdier/zsh-git-prompt
-export __GIT_PROMPT_DIR=${0:A:h}
+__GIT_PROMPT_DIR="${0:A:h}"
-export GIT_PROMPT_EXECUTABLE=${GIT_PROMPT_USE_PYTHON:-"python"}
-
-# Initialize colors.
-autoload -U colors
-colors
-
-# Allow for functions in the prompt.
-setopt PROMPT_SUBST
-
-autoload -U add-zsh-hook
-
-add-zsh-hook chpwd chpwd_update_git_vars
-add-zsh-hook preexec preexec_update_git_vars
-add-zsh-hook precmd precmd_update_git_vars
+## Hook function definitions
+function chpwd_update_git_vars() {
+ update_current_git_vars
+}
-## Function definitions
function preexec_update_git_vars() {
case "$2" in
git*|hub*|gh*|stg*)
@@ -34,64 +23,59 @@ function precmd_update_git_vars() {
fi
}
-function chpwd_update_git_vars() {
- update_current_git_vars
-}
+chpwd_functions+=(chpwd_update_git_vars)
+precmd_functions+=(precmd_update_git_vars)
+preexec_functions+=(preexec_update_git_vars)
+
+## Function definitions
function update_current_git_vars() {
unset __CURRENT_GIT_STATUS
- if [[ "$GIT_PROMPT_EXECUTABLE" == "python" ]]; then
- local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py"
- _GIT_STATUS=`python ${gitstatus} 2>/dev/null`
- fi
- if [[ "$GIT_PROMPT_EXECUTABLE" == "haskell" ]]; then
- local gitstatus="$__GIT_PROMPT_DIR/dist/build/gitstatus/gitstatus"
- _GIT_STATUS=`${gitstatus}`
- fi
+ local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py"
+ _GIT_STATUS=$(python ${gitstatus} 2>/dev/null)
__CURRENT_GIT_STATUS=("${(@s: :)_GIT_STATUS}")
- GIT_BRANCH=$__CURRENT_GIT_STATUS[1]
- GIT_AHEAD=$__CURRENT_GIT_STATUS[2]
- GIT_BEHIND=$__CURRENT_GIT_STATUS[3]
- GIT_STAGED=$__CURRENT_GIT_STATUS[4]
- GIT_CONFLICTS=$__CURRENT_GIT_STATUS[5]
- GIT_CHANGED=$__CURRENT_GIT_STATUS[6]
- GIT_UNTRACKED=$__CURRENT_GIT_STATUS[7]
+ GIT_BRANCH=$__CURRENT_GIT_STATUS[1]
+ GIT_AHEAD=$__CURRENT_GIT_STATUS[2]
+ GIT_BEHIND=$__CURRENT_GIT_STATUS[3]
+ GIT_STAGED=$__CURRENT_GIT_STATUS[4]
+ GIT_CONFLICTS=$__CURRENT_GIT_STATUS[5]
+ GIT_CHANGED=$__CURRENT_GIT_STATUS[6]
+ GIT_UNTRACKED=$__CURRENT_GIT_STATUS[7]
}
-
git_super_status() {
- precmd_update_git_vars
+ precmd_update_git_vars
if [ -n "$__CURRENT_GIT_STATUS" ]; then
- STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH%{${reset_color}%}"
- if [ "$GIT_BEHIND" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_BEHIND$GIT_BEHIND%{${reset_color}%}"
- fi
- if [ "$GIT_AHEAD" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD$GIT_AHEAD%{${reset_color}%}"
- fi
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_SEPARATOR"
- if [ "$GIT_STAGED" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED$GIT_STAGED%{${reset_color}%}"
- fi
- if [ "$GIT_CONFLICTS" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CONFLICTS$GIT_CONFLICTS%{${reset_color}%}"
- fi
- if [ "$GIT_CHANGED" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CHANGED$GIT_CHANGED%{${reset_color}%}"
- fi
- if [ "$GIT_UNTRACKED" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED%{${reset_color}%}"
- fi
- if [ "$GIT_CHANGED" -eq "0" ] && [ "$GIT_CONFLICTS" -eq "0" ] && [ "$GIT_STAGED" -eq "0" ] && [ "$GIT_UNTRACKED" -eq "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
- fi
- STATUS="$STATUS%{${reset_color}%}$ZSH_THEME_GIT_PROMPT_SUFFIX"
- echo "$STATUS"
- fi
+ STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH%{${reset_color}%}"
+ if [ "$GIT_BEHIND" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_BEHIND$GIT_BEHIND%{${reset_color}%}"
+ fi
+ if [ "$GIT_AHEAD" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD$GIT_AHEAD%{${reset_color}%}"
+ fi
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_SEPARATOR"
+ if [ "$GIT_STAGED" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED$GIT_STAGED%{${reset_color}%}"
+ fi
+ if [ "$GIT_CONFLICTS" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CONFLICTS$GIT_CONFLICTS%{${reset_color}%}"
+ fi
+ if [ "$GIT_CHANGED" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CHANGED$GIT_CHANGED%{${reset_color}%}"
+ fi
+ if [ "$GIT_UNTRACKED" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED%{${reset_color}%}"
+ fi
+ if [ "$GIT_CHANGED" -eq "0" ] && [ "$GIT_CONFLICTS" -eq "0" ] && [ "$GIT_STAGED" -eq "0" ] && [ "$GIT_UNTRACKED" -eq "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
+ fi
+ STATUS="$STATUS%{${reset_color}%}$ZSH_THEME_GIT_PROMPT_SUFFIX"
+ echo "$STATUS"
+ fi
}
-# Default values for the appearance of the prompt. Configure at will.
+# Default values for the appearance of the prompt.
ZSH_THEME_GIT_PROMPT_PREFIX="("
ZSH_THEME_GIT_PROMPT_SUFFIX=")"
ZSH_THEME_GIT_PROMPT_SEPARATOR="|"