Bash prompt
Voici mon bash color.
Il colore le prompt et affiche la branche en verte. Si le git est détaché du "HEAD", il affiche l'élément en bleu.
Téléchargez le ou prenez ce qui vous plait ci dessous :
########################################
# Colorize bash prompt with git branch #
# By Marc EYMARD #
# Follow me on twitter: @MarcEymard #
########################################
BLACK="\[\033[0;30m\]"
RED="\[\033[0;31m\]"
RED_BACK="\[\033[41m\]"
YELLOW="\[\033[0;33m\]"
GREEN="\[\033[0;32m\]"
BLUE="\[\033[0;34m\]"
BLUE_BACK="\[\033[44m\]"
LIGHT_RED="\[\033[1;31m\]"
LIGHT_GREEN="\[\033[1;32m\]"
WHITE="\[\033[1;37m\]"
WHITE_BACK="\[\033[47m\]"
LIGHT_GRAY="\[\033[0;37m\]"
COLOR_NONE="\[\e[0m\]"
function parse_git_branch {
git rev-parse --git-dir &> /dev/null
git_status="$(git status 2> /dev/null)"
branch_pattern="^On branch ([^${IFS}]*)"
tag_pattern="^HEAD detached at ([^${IFS}]*)"
remote_pattern="Your branch is (.*) of"
diverge_pattern="Your branch and (.*) have diverged"
if [[ ! ${git_status}} =~ "working directory clean" ]]; then
state="${LIGHT_RED}⚡"
fi
# add an else if or two here if you want to get more specific
if [[ ${git_status} =~ ${remote_pattern} ]]; then
if [[ ${BASH_REMATCH[1]} == "ahead" ]]; then
remote="${YELLOW}↑"
else
remote="${YELLOW}↓"
fi
fi
if [[ ${git_status} =~ ${diverge_pattern} ]]; then
remote="${YELLOW}↕"
fi
if [[ ${git_status} =~ ${branch_pattern} ]]; then
branch=${BASH_REMATCH[1]}
echo " (${branch})${remote}${state}"
elif [[ ${git_status} =~ ${tag_pattern} ]]; then
branch=${BASH_REMATCH[1]}
echo " ${BLUE}(${branch})${remote}${state}"
fi
}
function prompt_func() {
previous_return_value=$?;
if [ "$TERM" != "linux" -a -z "$EMACS" ]
then
TITLEBAR="\[\e]2;\u@\h:\w\a\]"
else
TITLEBAR=""
fi
prompt="${TITLEBAR}${BLUE}[${COLOR_NONE}${BLUE}\u${WHITE}@${RED}\h ${YELLOW}\w${GREEN}$(parse_git_branch)${BLUE}]${COLOR_NONE}"
if test $previous_return_value -eq 0
then
PS1="${prompt}${GREEN}\\\$${COLOR_NONE} "
else
PS1="${prompt}${LIGHT_RED}\\\$${COLOR_NONE} "
fi
}
PROMPT_COMMAND=prompt_func