Maintenance électrique le 12 août, nos services, et y compris Gitlab, seront fortement impactés autour de cette date. Retour à un état normal prévu dans le milieu de la semaine prochaine.

Commit 30b1fd7c authored by Vincent Le gallic's avatar Vincent Le gallic

Fin du déshardcodage des couleurs.

On garde une version de la couleur sans les \[ \] et une version _prompt avec.
parent 399c89c0
......@@ -79,7 +79,7 @@ get_vcs_info () {
LBRANCH=$(eval "${BRANCH[$DIR]}")
LTYPE="${TYPE[$DIR]}"
if [ "$color_prompt" = yes ]; then
VCS_info="${nocolor}${vcs_symbols_color}(${nocolor}$LTYPE${vcs_symbols_color})-${vcs_symbols_color}[${vcs_branch_color}$LBRANCH${vcs_symbols_color}]${nocolor}"
VCS_info="${nocolor}${vcs_symbols_color}(${vcs_type_color}$LTYPE${vcs_symbols_color})-${vcs_symbols_color}[${vcs_branch_color}$LBRANCH${vcs_symbols_color}]${nocolor}"
else
VCS_info="($LTYPE)-[$LBRANCH]"
fi
......@@ -111,33 +111,52 @@ function cd {
# | Génération du prompt |
# +----------------------+
cyan='\[\e[1;36m\]'
violet='\[\e[1;35m\]'
violet_thin='\[\e[0;35m\]'
jaune='\[\e[1;33m\]'
rouge='\[\e[1;31m\]'
vert='\[\e[1;32m\]'
vert_thin='\[\e[0;32m\]'
bleu='\[\e[1;34m\]'
nocolor='\[\e[0m\]'
# Définition des couleurs
# Pour les utiliser dans le prompt,
# les couleurs doivent être entourés de \[ et \] pour délimiter les caractères
# invisibles
cyan='\e[1;36m'
violet='\e[1;35m'
violet_thin='\e[0;35m'
jaune='\e[1;33m'
jaune_thin='\e[0;33m'
rouge='\e[1;31m'
vert='\e[1;32m'
vert_thin='\e[0;32m'
bleu='\e[1;34m'
blanc='\e[1;37m'
nocolor='\e[0m'
cyan_prompt="\[${cyan}\]"
violet_prompt="\[${violet}\]"
violet_thin_prompt="\[${violet_thin}\]"
jaune_prompt="\[${jaune}\]"
jaune_thin_prompt="\[${jaune_thin}\]"
rouge_prompt="\[${rouge}\]"
vert_prompt="\[${vert}\]"
vert_thin_prompt="\[${vert_thin}\]"
bleu_prompt="\[${bleu}\]"
nocolor_prompt="\[${nocolor}\]"
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# support de la couleur
color_prompt=yes
# Couleurs dans "user@host $"
username_color=$rouge
host_color=$bleu
symbols_color=$vert
username_color=${rouge_prompt}
host_color=${bleu_prompt}
symbols_color=${vert_prompt}
# Couleur de la ligne séparatrice de prompt
line_color=$cyan
line_color=${cyan}
line_color_prompt=${cyan_prompt}
# Couleur du path actuel
pwd_color=$jaune
# Couleur de la date
date_color=$violet
pwd_color=${jaune_prompt}
# Couleur de la date (à chaque affichage du prompt)
date_color=${violet_prompt}
# Couleur de la date au premier affichage (à l'ouverture du terminal)
announce_date_color=${blanc}
# Couleur d'affichage de vcs_info
vcs_symbols_color=$violet_thin
vcs_type_color=
vcs_branch_color=$vert_thin
vcs_symbols_color=${violet_thin_prompt}
vcs_type_color=${jaune_thin_prompt}
vcs_branch_color=${vert_thin_prompt}
else
# pas de support de la couleur
color_prompt=no
......@@ -183,14 +202,14 @@ function prompt_command
POST_DIR='${MINUS_LINE:'${#pwd}+${VCS_size}+1'+${#?}}'
fi
if [ "$color_prompt" = yes ]; then
DIR="< ${pwd_color}"$DIR"${line_color} >"
DIR="< ${pwd_color}"$DIR"${line_color_prompt} >"
# On affiche le code de retour en "no color" si c'est 0, en rouge sinon
# Ceci n'est pas customizable à coup de variable,
# il faut changer $((31+($?==0)*6)) si vous y tenez vraiment et que vous comprenez ce que vous faites
ERR='[ \[\e[1;$((31+($?==0)*6))m\]$?'${line_color}' ]'$MINUS_CHAR
DATE="( ${date_color}\D{%H:%M:%S}${line_color} )"
ERR='[ \[\e[1;$((31+($?==0)*6))m\]$?'${line_color_prompt}' ]'$MINUS_CHAR
DATE="( ${date_color}\D{%H:%M:%S}${line_color_prompt} )"
PROMPT="${username_color}\u${symbols_color}@${host_color}\h ${symbols_color}\$ ${nocolor}"
PS1=$TITLE${line_color}$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info${line_color}$POST_DIR$ERR'\n'$PROMPT
PS1=$TITLE${line_color_prompt}$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR$VCS_info${line_color_prompt}$POST_DIR$ERR'\n'$PROMPT
else
DIR="< "$DIR" >"
ERR='[ $? ]'$MINUS_CHAR
......@@ -221,9 +240,9 @@ if [[ $(uname) == Linux && ( $(locale charmap) == UTF-8 && $TERM != screen ) ]];
redate=${date//é/e}
redate=${redate//û/u}
if [ "$color_prompt" = yes ]; then
echo -e "\e[1;36m┬─${redate//?/─}─┬${MINUS_LINE:${#date}-18}\n\
\e[1;37m$date\e[1;31m \e[1;36m \n\
└─${redate//?/─}\e[0m\n"
echo -e "${line_color}┬─${redate//?/─}─┬${MINUS_LINE:${#date}-18}\n\
${announce_date_color}$date ${line_color}\n\
└─${redate//?/─}─┘\e[0m\n"
else
echo -e "┬─${redate//?/─}──┬${MINUS_LINE:${#date}-18}\n\
$date\n\
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment