« Bash : Prompt avec statut SVN » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
C'est suite à la lecture de [http://blog.nicolargo.com/2012/02/configurer-votre-prompt-bash.html| cet article] que j'ai décidé moi aussi de rafraîchir mon prompt. | C'est suite à la lecture de [http://blog.nicolargo.com/2012/02/configurer-votre-prompt-bash.html| cet article] que j'ai décidé moi aussi de rafraîchir mon prompt. | ||
Donc j'ai décidé de faire une petite variante, pour ma part je n'utilise pas GIT mais SVN. Donc je reprends le même principe mais pour SVN. | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> |
Version du 21 février 2012 à 12:48
C'est suite à la lecture de cet article que j'ai décidé moi aussi de rafraîchir mon prompt.
Donc j'ai décidé de faire une petite variante, pour ma part je n'utilise pas GIT mais SVN. Donc je reprends le même principe mais pour SVN.
# Colors
NoColor="\e[0;0m"
Cyan="\e[0;36m"
Green="\e[0;32m"
Red="\e[0;31m"
Yellow="\e[0;33m"
# Prompts chars
UserPrompt="$"
RootPrompt="#"
# Contextual prompt
prompt() {
USERNAME=`whoami`
HOSTNAME=`hostname`
CURRENTPATH=`pwd | sed "s|$HOME|~|g"`
LEFTPROMPT=$Cyan$USERNAME@$HOSTNAME":"$Yellow$CURRENTPATH
let LEFTSIZE=$(echo -n "$USERNAME@$HOSTNAME:$CURRENTPATH" | wc -c)
RIGHTPROMPT=""
let RIGHTSIZE=0
SVNSTATUS=$(svn status 2>&1)
echo $SVNSTATUS | grep 'not a working copy' > /dev/null 2>&1
if [ $? -eq 1 ]; then
echo $SVNSTATUS | grep -P '^\s*[AMDCR]' 2>&1 > /dev/null
if [ $? -eq 0 ]; then
RIGHTPROMPT=$Red
else
RIGHTPROMPT=$Green
fi
BRANCH=$(svn info | grep 'Repository Root' | sed -r 's|^.*/([a-z]+)$|\1|')
RIGHTPROMPT=$RIGHTPROMPT"[SVN Repository $BRANCH]"
let RIGHTSIZE=$(echo -n "[SVN Repository $BRANCH]" | wc -c)
fi
let BLANCKSIZE=${COLUMNS}-${LEFTSIZE}-${RIGHTSIZE}
RIGHTPROMPT=$RIGHTPROMPT$NoColor
echo -e -n "\n"$LEFTPROMPT
printf "%$(($BLANCKSIZE))s"
echo -e $RIGHTPROMPT
}
# Main prompt
PROMPT_COMMAND=prompt
if [ $EUID -ne 0 ]; then
PS1=$UserPrompt" "
else
PS1=$RootPrompt" "
fi