# bash_prompt; adapted from
# https://github.com/necolas/dotfiles/blob/master/shell/bash_prompt and
-# http://vitus-wagner.livejournal.com/1176589.html?thread=40146189#t40146189
+# https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh
prompt_git() {
local s=""
# check for unstaged changes
if [ -n "$(git ls-files --modified)" ]; then
- s="$s!";
+ s="$s*";
fi
# check for untracked files
if [ -n "$(git ls-files --others --exclude-standard)" ]; then
- s="$s?";
+ s="$s%";
fi
# check for stashed files
printf "(unknown)")"
[ -n "$s" ] && s=" [$s]"
- printf "%s" "$branchName$s "
+ printf " (%s)" "$branchName$s"
fi
}
+if test -x /usr/bin/git >/dev/null 2>&1; then
+ if [ "`type -t __git_ps1`" != function ]; then
+ git_sh_prompt=`git --exec-path`/git-sh-prompt
+ test -r $git_sh_prompt && . $git_sh_prompt || :
+ fi
+ if [ "`type -t __git_ps1`" = function ]; then
+ GIT_PS1_SHOWDIRTYSTATE=true
+ GIT_PS1_SHOWSTASHSTATE=true
+ GIT_PS1_SHOWUNTRACKEDFILES=true
+ GIT_PS1_SHOWUPSTREAM=verbose
+ fi
+fi
+
set_prompts() {
OPS1=''
# display the user, host and current working directory
esac
OPS1+="${debian_chroot:+($debian_chroot)}"
- OPS1+="\`cgmem_which_prompt\`\u@\${HOSTNAME::5}:\`short_curdir\` "
- OPS1+="\$(prompt_git)"
- OPS1+="\\$\$SHLVL "
+ OPS1+="\`cgmem_which_prompt\`\u@\${HOSTNAME::5}:\`short_curdir\`"
+ if test -x /usr/bin/git >/dev/null 2>&1; then
+ if [ "`type -t __git_ps1`" = function ]; then
+ OPS1+="\$(__git_ps1)"
+ else
+ OPS1+="\$(prompt_git)"
+ fi
+ fi
+ OPS1+=" \\$\$SHLVL "
export OPS1
}