--- /dev/null
+#!/bin/bash
+
+# Définit des variables cool pour utiliser des couleurs.
+# À sourcer, évidemment.
+
+# Reset
+No_Color='\e[0m' # Text Reset
+
+# Regular Colors
+Black='\e[0;30m' # Black
+Red='\e[0;31m' # Red
+Green='\e[0;32m' # Green
+Yellow='\e[0;33m' # Yellow
+Blue='\e[0;34m' # Blue
+Purple='\e[0;35m' # Purple
+Cyan='\e[0;36m' # Cyan
+White='\e[0;37m' # White
+
+regular_colors_names=(Black Red Green Yellow Blue Purple Cyan White)
+
+# Bold
+BBlack='\e[1;30m' # Black
+BRed='\e[1;31m' # Red
+BGreen='\e[1;32m' # Green
+BYellow='\e[1;33m' # Yellow
+BBlue='\e[1;34m' # Blue
+BPurple='\e[1;35m' # Purple
+BCyan='\e[1;36m' # Cyan
+BWhite='\e[1;37m' # White
+
+bold_colors_names=(BBlack BRed BGreen BYellow BBlue BPurple BCyan BWhite)
+
+front_colors_names=(Black Red Green Yellow Blue Purple Cyan White
+ BBlack BRed BGreen BYellow BBlue BPurple BCyan BWhite)
+
+# Underline
+UBlack='\e[4;30m' # Black
+URed='\e[4;31m' # Red
+UGreen='\e[4;32m' # Green
+UYellow='\e[4;33m' # Yellow
+UBlue='\e[4;34m' # Blue
+UPurple='\e[4;35m' # Purple
+UCyan='\e[4;36m' # Cyan
+UWhite='\e[4;37m' # White
+
+underline_colors_names=(UBlack URed UGreen UYellow UBlue UPurple UCyan UWhite)
+
+# Background
+On_Black='\e[40m' # Black
+On_Red='\e[41m' # Red
+On_Green='\e[42m' # Green
+On_Yellow='\e[43m' # Yellow
+On_Blue='\e[44m' # Blue
+On_Purple='\e[45m' # Purple
+On_Cyan='\e[46m' # Cyan
+On_White='\e[47m' # White
+
+background_colors_names=(On_Black On_Red On_Green On_Yellow On_Blue On_Purple On_Cyan On_White)
+
+# High Intensity
+IBlack='\e[0;90m' # Black
+IRed='\e[0;91m' # Red
+IGreen='\e[0;92m' # Green
+IYellow='\e[0;93m' # Yellow
+IBlue='\e[0;94m' # Blue
+IPurple='\e[0;95m' # Purple
+ICyan='\e[0;96m' # Cyan
+IWhite='\e[0;97m' # White
+
+# Elles sont toutes dans la même liste
+
+# Bold High Intensity
+BIBlack='\e[1;90m' # Black
+BIRed='\e[1;91m' # Red
+BIGreen='\e[1;92m' # Green
+BIYellow='\e[1;93m' # Yellow
+BIBlue='\e[1;94m' # Blue
+BIPurple='\e[1;95m' # Purple
+BICyan='\e[1;96m' # Cyan
+BIWhite='\e[1;97m' # White
+
+high_intensity_colors_names=(IBlack IRed IGreen IYellow IBlue IPurple ICyan IWhite
+ BIBlack BIRed BIGreen BIYellow BIBlue BIPurple BICyan BIWhite)
+
+# High Intensity backgrounds
+On_IBlack='\e[0;100m' # Black
+On_IRed='\e[0;101m' # Red
+On_IGreen='\e[0;102m' # Green
+On_IYellow='\e[0;103m' # Yellow
+On_IBlue='\e[0;104m' # Blue
+On_IPurple='\e[0;105m' # Purple
+On_ICyan='\e[0;106m' # Cyan
+On_IWhite='\e[0;107m' # White
+
+background_high_intensity_colors_names=(On_IBlack On_IRed On_IGreen On_IYellow On_IBlue On_IPurple On_ICyan On_IWhite)
+
+Test1="\e[0;38m"
+Test2="\e[0;39m"
+tests=(Test1 Test2)
+all_colors_names=(`echo ${front_colors_names[@]} ${underline_colors_names[@]} ${background_colors_names[@]} ${high_intensity_colors_names[@]} ${background_high_intensity_colors_names[@]} ${all_colors_names[@]} ${tests[@]}`)
--- /dev/null
+#!/usr/bin/python
+# -*- coding:utf8 -*-
+
+""" Petit script pour générer une chaîne de caractère magique
+ qui permet de changer la couleur d'affichage du texte dans le shell
+"""
+
+# Les paramètres sont les suivants :
+# 1 : le type de sortie prompt ou pas
+# si c'est prompt, la sortie est enadrée de \[ et \], sinon non
+# 2 : fg ou bg ou both
+# 3 : la couleur (black, red, green, yellow, blue, purple, cyan, white)
+# 4 et suivants : des paramètres
+# liste exhaustive des combinaisons possibles :
+# []
+# bold
+# underline
+# high
+# bold underline
+# bold underline high #(a prori ça garde que bold)
+# underline high
+# avec ground = both
+# [fg_params] , bg_color [bg_params]
+
+
+import sys
+args=sys.argv
+
+
+
+dicocolor={"black":"0","Black":"0","noir":"0","Noir":"0","BLACK":"0","NOIR":"0",
+ "red":"1","Red":"1","rouge":"1","Rouge":"1","RED":"1","ROUGE":"1",
+ "green":"2","Green":"2","vert":"2","Vert":"2","GREEN":"2","VERT":"2",
+ "yellow":"3","Yellow":"3","jaune":"3","Jaune":"3","YELLOW":"3","JAUNE":"3",
+ "blue":"4","Blue":"4","bleu":"4","Bleu":"4","BLUE":"4","BLEU":"4",
+ "purple":"5","Purple":"5","violet":"5","Violet":"5","PURPLE":"5","VIOLET":"5",
+ "cyan":"6","Cyan":"6","CYAN":"6",
+ "white":"7","White":"7","blanc":"7","Blanc":"7","WHITE":"7","BLANC":"7"}
+
+def isBold(liste):
+ liste_bold=set(["bold","Bold","BOLD","gras","Gras","GRAS"])
+ return not(liste_bold.isdisjoint(set(liste)))
+
+def isUnderline(liste):
+ liste_underline=set(["underline","Underline","UNDERLINE","souligne","Souligne","SOULIGNE"])
+ return not(liste_underline.isdisjoint(set(liste)))
+
+def isHigh(liste):
+ liste_high=set(["high","High","HIGH","high_intensity","High_Intensity","HIGH_INTENSITY"])
+ return not(liste_high.isdisjoint(set(liste)))
+
+def get_fg_color(color,bold,underline,high):
+ prefix=("4;"*underline
+ +"1;"*bold)
+ highoupas="9"*high+"3"*(not(high))
+ return prefix+highoupas+dicocolor[color]
+
+def get_bg_color(color,high):
+ highoupas="4"*high+"10"*(not(high))
+ return highoupas+dicocolor[color]
+
+# Let's go
+out,ground,color=args[1],args[2],args[3]
+params=args[4:] # éventuellement vide
+
+if out=="prompt":
+ deb,fin="\\[\\e[","m\\]"
+else:
+ deb,fin="\\e[","m"
+
+
+
+if ground=="fg":
+ bold = isBold(params)
+ underline = isUnderline(params)
+ high = isHigh(params)
+ print deb+get_fg_color(color,bold,underline,high)+fin
+elif ground=="bg":
+ high = isHigh(params)
+ print deb+get_bg_color(color,high)+fin
+elif ground=="both":
+ # On cherche le séparateur
+ virgule=params.index(",")
+ fg_params=params[:virgule]
+ bg_color=params[virgule+1]
+ bg_params=params[virgule+2:]
+ out = deb
+ out += get_fg_color(color,isBold(fg_params),isUnderline(fg_params),isHigh(fg_params))
+ out += fin+deb
+ out += get_bg_color(bg_color,isHigh(bg_params))
+ out += fin
+ print out
+else:
+ print ""