mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 13:21:19 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# 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)'
 |