Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
6ff53d17
Commit
6ff53d17
authored
Aug 01, 2015
by
Marc Cornellà
Browse files
Cleanup of git-prompt plugin file
parent
1d133ff1
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/git-prompt/git-prompt.plugin.zsh
View file @
6ff53d17
# 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_
function
s+
=(
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
=
"|"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment