git_prompt_status now compatible with zsh

This commit is contained in:
Loic Nageleisen 2013-12-13 12:05:21 +01:00
parent a29f48070a
commit e1adf97cfe
4 changed files with 17 additions and 11 deletions

View file

@ -63,7 +63,7 @@ clear_incomplete_line() {
}
# git prompt info
source $DOTFILES_BASH_DIR/git_prompt_info
source $DOTFILES_SHELL_DIR/git_prompt_info
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1

View file

@ -1,6 +1,6 @@
# extracted from git's bash completion contrib
# don't redefine it if it's there already
if [[ -z "$(type -t __gitdir)" ]]; then
if [[ -z $BASH_VERSION || -z "$(type -t __gitdir)" ]]; then
__gitdir ()
{
if [ -z "${1-}" ]; then

View file

@ -127,16 +127,15 @@ prompt_dir() {
}
prompt_git() {
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
if [[ -n $GIT_PS1_STATUS ]]; then
PROMPT_VCS_TYPE='git'
PROMPT_VCS_REF=$(git symbolic-ref HEAD 2> /dev/null)
PROMPT_VCS_REF="${PROMPT_VCS_REF/refs\/heads\//}"
PROMPT_VCS_WPATH=$(cd $(dirname $(git rev-parse --git-dir)) && pwd)
PROMPT_VCS_WNAME=$(basename $PROMPT_VCS_WPATH)
PROMPT_VCS_WPWD="${PWD#$PROMPT_VCS_WPATH}"
PROMPT_VCS_WPWD="${PROMPT_VCS_WPWD#/}"
git diff --ignore-submodules --quiet
PROMPT_VCS_DIRTY=$?
PROMPT_VCS_REF="$GIT_PS1_BRANCH"
PROMPT_VCS_WPATH="$GIT_PS1_TOPLEVEL"
PROMPT_VCS_WNAME="$GIT_PS1_NAME"
PROMPT_VCS_WPWD="$GIT_PS1_PREFIX"
[[ "$GIT_PS1_STATUS" == *t* ]] && PROMPT_VCS_DIRTY=1
[[ "$GIT_PS1_STATUS" == *u* ]] && PROMPT_VCS_DIRTY=1
[[ "$GIT_PS1_STATUS" == *s* ]] && PROMPT_VCS_DIRTY=1
return 0
else
unset PROMPT_VCS_TYPE

7
zsh/rc
View file

@ -13,6 +13,12 @@ source $DOTFILES_ZSH_DIR/completion
source $DOTFILES_ZSH_DIR/prompt
source $DOTFILES_ZSH_DIR/bundler
source $DOTFILES_SHELL_DIR/git_prompt_info
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1
__git_ps1_vars
precmd() {
LAST_CMD_RC=$?
psvar=()
@ -26,6 +32,7 @@ preexec() {
}
chpwd() {
__git_ps1_vars
#set_term_title
}