Schlagwort: bash

[bash] VCS Info im Shell-Prompt

folgender Code in der .bashrc zeigt den VCS-Status (git oder svn) des aktuellen Verzeichnisses an.
Getestet unter Windows8/cygwin, sollte aber auf jeder Plattform funktionieren (wenn eine bash verwendet wird).
export LC_MESSAGES=C ist nötig wenn svn oder git lokalisierte Meldungen ausgeben (ein ewiges Ärgernis).


export LC_MESSAGES=C
GREEN="\[\033[0;32m\]"
LIGHT_GREEN="\[\033[1;32m\]"
GRAY="\[\033[1;30m\]"
LIGHT_BLUE="\[\033[1;34m\]"
LIGHT_GRAY="\[\033[0;37m\]"
COLOR_OFF="\[\e[0m\]"
function prompt_func() {
branch_pattern="\* ([^$IFS]*)"
PS1="$LIGHT_GRAY\u$COLOR_OFF $LIGHT_GREEN\w$COLOR_OFF"
if [[ -d "./.git" && "$(git branch --no-color 2> /dev/null)" =~ $branch_pattern ]]; then
branch="${BASH_REMATCH[1]}"
PS1+=":$LIGHT_BLUE$branch$COLOR_OFF"
elif [[ -d "./.svn" ]]; then
path_pattern="URL: ([^$IFS]*).*Repository Root: ([^$IFS]*).*Revision: ([0-9]*)"
if [[ "$(svn info 2> /dev/null)" =~ ${path_pattern} ]]; then
branch=${BASH_REMATCH[1]##`expr ${BASH_REMATCH[2]}`}
revision="${BASH_REMATCH[3]}"
PS1+=":$LIGHT_BLUE$branch$GRAY@$revision$COLOR_OFF"
fi
fi
PS1+=" "
}
PROMPT_COMMAND=prompt_func

Anfrage