diff options
author | Justin Riley <justin.t.riley@gmail.com> | 2011-04-28 15:05:52 -0400 |
---|---|---|
committer | Justin Riley <justin.t.riley@gmail.com> | 2011-04-28 15:05:52 -0400 |
commit | e5f77b8f0496e5915383f2f456f91a20f5ff4ace (patch) | |
tree | b9826e81e43421385cb079815e7a2bbafc27dac7 /plugins/git-prompt/git-prompt.plugin.zsh | |
parent | 70d0beae22e7d97d4380af32dae1618f45e3dd4b (diff) | |
download | zsh-e5f77b8f0496e5915383f2f456f91a20f5ff4ace.tar.gz zsh-e5f77b8f0496e5915383f2f456f91a20f5ff4ace.tar.bz2 zsh-e5f77b8f0496e5915383f2f456f91a20f5ff4ace.zip |
add git-prompt plugin from olivierverdier/zsh-git-prompt
Diffstat (limited to 'plugins/git-prompt/git-prompt.plugin.zsh')
-rw-r--r-- | plugins/git-prompt/git-prompt.plugin.zsh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh new file mode 100644 index 000000000..01b8a88d9 --- /dev/null +++ b/plugins/git-prompt/git-prompt.plugin.zsh @@ -0,0 +1,60 @@ +# ZSH Git Prompt Plugin from: +# http://github.com/olivierverdier/zsh-git-prompt +# +export __GIT_PROMPT_DIR=$ZSH/plugins/git-prompt +# Initialize colors. +autoload -U colors +colors + +# Allow for functions in the prompt. +setopt PROMPT_SUBST + +## Enable auto-execution of functions. +typeset -ga preexec_functions +typeset -ga precmd_functions +typeset -ga chpwd_functions + +# Append git functions needed for prompt. +preexec_functions+='preexec_update_git_vars' +precmd_functions+='precmd_update_git_vars' +chpwd_functions+='chpwd_update_git_vars' + +## Function definitions +function preexec_update_git_vars() { + case "$2" in + git*) + __EXECUTED_GIT_COMMAND=1 + ;; + esac +} + +function precmd_update_git_vars() { + if [ -n "$__EXECUTED_GIT_COMMAND" ]; then + update_current_git_vars + unset __EXECUTED_GIT_COMMAND + fi +} + +function chpwd_update_git_vars() { + update_current_git_vars +} + +function update_current_git_vars() { + unset __CURRENT_GIT_STATUS + + local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py" + _GIT_STATUS=`python ${gitstatus}` + __CURRENT_GIT_STATUS=("${(f)_GIT_STATUS}") +} + +function prompt_git_info() { + if [ -n "$__CURRENT_GIT_STATUS" ]; then + echo "(%{${fg[red]}%}$__CURRENT_GIT_STATUS[1]%{${fg[default]}%}$__CURRENT_GIT_STATUS[2]%{${fg[magenta]}%}$__CURRENT_GIT_STATUS[3]%{${fg[default]}%})" + fi +} + +# Set the prompt. +#PROMPT='%B%m%~%b$(prompt_git_info) %# ' +# for a right prompt: +#RPROMPT='%b$(prompt_git_info)' +RPROMPT='$(prompt_git_info)' |