Commit 3c5536f9 authored by Pierre-antoine Comby's avatar Pierre-antoine Comby
Browse files

choose prompt color automagically

parent 3299afcd
......@@ -110,7 +110,8 @@ alias ...='cd ../..'
#~# # en faisant un truc bidon et transparent pour l'historique
#~# # (à savoir créer une branche et la supprimer)
#~# alias shakegit='git checkout -b shakegitbranch && git push origin shakegitbranch && git checkout master && git branch -d shakegitbranch && git push origin :shakegitbranch'
alias ip='ip --color=auto'
alias cat='bat'
# +--------+
# | Divers |
# +--------+
......
......@@ -37,12 +37,8 @@ fi
[ -d ~/.bash_completion.d/ ] && for f in ~/.bash_completion.d/*; do source $f; done
# +-----+
# | VCS |
# | GIT |
# +-----+
# Définition de fonction pour pouvoir afficher dans le prompt
# des infos quand on est dans un dépôt versionné
# Checks if the command provided is in the commands list and is
# executable
check_command(){
......@@ -50,11 +46,6 @@ check_command(){
return 1
}
# If name should be overwritten (eg for git-svn), do it.
vcs_adjust(){
[[ -n ${vcs_comm[overwrite_name]} ]] && vcs=${vcs_comm[overwrite_name]}
return 0
}
# Formats two VCS_info messages, one with colors, and one without
vcs_formats(){
......@@ -144,15 +135,6 @@ git_detect(){
return 1
}
# .svn in each directories
svn_detect() {
check_command svn || return 1
[[ -d ".svn" ]] && return 0
return 1
}
# Find git's branch
git_getbranch (){
local gitbranch gitdir=$1 tmp actiondir
......@@ -274,23 +256,6 @@ git_get_data(){
return 0
}
svn_get_data(){
local svnbase svnbranch
local -a svninfo
svnbase="."
while [[ -d "${svnbase}/../.svn" ]]; do
svnbase="${svnbase}/.."
done
svnbase="$(vcs_realpath ${svnbase})"
svnrev=$(svn info | awk '{if($1 == "Révision :") print $2}')
svnbranch=$(svn info | awk '{if($1 == "URL :") print $2}'|awk -F "/" '{ print $NF }')
vcs_formats '' "${svnbranch}" "${svnbase}" "${svnrev}"
return 0
}
vcs_info(){
local -i found
......@@ -301,7 +266,7 @@ vcs_info(){
local -A disabled
vcs="init"
vcss=(git svn )
vcss=(git)
disabled[cdv]=1
disabled[cvs]=1
disabled[bzr]=1
......@@ -330,6 +295,7 @@ vcs_info(){
VCS_size=${#msgs[1]}
}
# Pour avoir le bon umask en fonction du dossier où on se trouve
# L'umask définit avec quel droits un fichier est créé.
# Quand on écrit dans un dossier et qu'on veut que, par défaut,
......@@ -350,10 +316,8 @@ function cd {
# | Génération du prompt |
# +----------------------+
# 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
nocolor='\e[0m'
cyan='\e[1;36m'
cyan_thin='\e[0;36m'
violet='\e[1;35m'
......@@ -379,8 +343,7 @@ rouge_prompt="\[${rouge}\]"
rouge_thin_prompt="\[${rouge_thin}\]"
vert_prompt="\[${vert}\]"
vert_thin_prompt="\[${vert_thin}\]"
#bleu_prompt="\[${bleu}\]"
bleu_prompt="\[${cyan}\]"
bleu_prompt="\[${bleu}\]"
bleu_thin_prompt="\[${bleu_thin}\]"
blanc_prompt="\[${blanc}\]"
blanc_thin_prompt="\[${blanc_thin}\]"
......@@ -402,12 +365,10 @@ function gen_minus_line
# Pas la peine de refaire le travail tant qu'on ne change
# pas le nombre de colonnes.
SAVE_COLUMNS=$COLUMNS
for ((i = COLUMNS-23; i>0; i--)); do
MINUS_LINE=$MINUS_CHAR$MINUS_LINE
MINUS_LINE=$MINUS_CHAR$MINUS_LINE
done
}
# Génération du prompt après chaque commande
function prompt_command
{
......@@ -468,7 +429,7 @@ function prompt_command
DATE="( ${date_color}\D{%H:%M:%S}${line_color_prompt} )"
# Deuxième ligne du prompt "user@host $"
# Attention "\\\$" devient \$, c'est-à-dire # pour root, $ pour les autres
PROMPT="${username_color}\u${symbols_color}@${host_color}\h ${symbols_color}${SCREEN_ENV}${VENV}${symbols_color}\\\$ ${nocolor_prompt}"
PROMPT="${username_color_prompt}\u${symbols_color_prompt}@${host_color_prompt}\h ${symbols_color_prompt}${SCREEN_ENV}${VENV}${symbols_color_prompt}\\\$ ${nocolor_prompt}"
# On fusionne tout ça
PS1=$TITLE${line_color_prompt}$MINUS_CHAR$DATE$MINUS_CHAR$DIR$MINUS_CHAR${line_color_prompt}$POST_DIR$VCS_info$ERR'\n'$PROMPT
else
......@@ -480,16 +441,36 @@ function prompt_command
fi
}
username_color=$blanc
if [[ "$USERNAME" = pac ]]; then username_color=$jaune; fi
if [[ "$USERNAME" = comby ]]; then username_color=$vert; fi
if [[ "$USERNAME" = pi ]]; then username_color=$jaune; fi
if [[ "$USERNAME" = root ]]; then username_color='\e[6m\e31m'; fi
host_color=none
# crans
if [[ "$HOST" = zamok ]]; then host_color=$cyan; fi
if [[ "$HOST" = thot ]]; then host_color=$vert; fi
if [[ "$HOST" = redisdead ]]; then host_color=$rouge; fi
if [[ "$HOST" = silice ]]; then host_color=$jaune; fi
if [[ "$HOST" = kiwi ]]; then host_color=$vert; fi
if [[ "$HOST" = bde-note ]]; then host_color=$rouge; fi
if [[ "$HOST" = sauron ]]; then host_color=$rouge; fi
if [[ "$host_color" = none ]]; then
host_color="\e[38;5;$(($(head -1 /etc/hostname| md5sum | sed "s/[a-f]//g" | head -c 3) % 210+ 19))m"
fi
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_prompt}
host_color=${bleu_prompt}
symbols_color=${vert_prompt}
username_color_prompt="\[${username_color}\]"
host_color_prompt="\[${host_color}\]"
symbols_color_prompt=${blanc_prompt}
# Couleur de la ligne séparatrice de prompt
line_color=${cyan}
line_color_prompt=${cyan_prompt}
line_color=${host_color}
# line_color_prompt=${cyan_prompt}
line_color_prompt=${host_color_prompt}
# Couleur du path actuel
pwd_color=${jaune_prompt}
# Couleur de la date (à chaque affichage du prompt)
......@@ -510,16 +491,6 @@ else
color_prompt=no
fi
# On change le titre de la fenêtre dynamiquement si on est sous X
#if [[ $TERM = "" ]]; then
#
#TITLEBAR='\[\e]0;\u@\h\a\]'
#TITLE='\[\e];\u@\h:\w\a\]'
#else
#TITLE=''
#fi
# On régénére le prompt après chaque commande
PROMPT_COMMAND=prompt_command
......
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