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 # git prompt info
source $DOTFILES_BASH_DIR/git_prompt_info source $DOTFILES_SHELL_DIR/git_prompt_info
GIT_PS1_SHOWDIRTYSTATE=1 GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1 GIT_PS1_SHOWSTASHSTATE=1
GIT_PS1_SHOWUNTRACKEDFILES=1 GIT_PS1_SHOWUNTRACKEDFILES=1

View file

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

View file

@ -127,16 +127,15 @@ prompt_dir() {
} }
prompt_git() { 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_TYPE='git'
PROMPT_VCS_REF=$(git symbolic-ref HEAD 2> /dev/null) PROMPT_VCS_REF="$GIT_PS1_BRANCH"
PROMPT_VCS_REF="${PROMPT_VCS_REF/refs\/heads\//}" PROMPT_VCS_WPATH="$GIT_PS1_TOPLEVEL"
PROMPT_VCS_WPATH=$(cd $(dirname $(git rev-parse --git-dir)) && pwd) PROMPT_VCS_WNAME="$GIT_PS1_NAME"
PROMPT_VCS_WNAME=$(basename $PROMPT_VCS_WPATH) PROMPT_VCS_WPWD="$GIT_PS1_PREFIX"
PROMPT_VCS_WPWD="${PWD#$PROMPT_VCS_WPATH}" [[ "$GIT_PS1_STATUS" == *t* ]] && PROMPT_VCS_DIRTY=1
PROMPT_VCS_WPWD="${PROMPT_VCS_WPWD#/}" [[ "$GIT_PS1_STATUS" == *u* ]] && PROMPT_VCS_DIRTY=1
git diff --ignore-submodules --quiet [[ "$GIT_PS1_STATUS" == *s* ]] && PROMPT_VCS_DIRTY=1
PROMPT_VCS_DIRTY=$?
return 0 return 0
else else
unset PROMPT_VCS_TYPE 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/prompt
source $DOTFILES_ZSH_DIR/bundler 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() { precmd() {
LAST_CMD_RC=$? LAST_CMD_RC=$?
psvar=() psvar=()
@ -26,6 +32,7 @@ preexec() {
} }
chpwd() { chpwd() {
__git_ps1_vars
#set_term_title #set_term_title
} }