Pour télécharger le fichier initial cliquez ici ->colorize.sh
#!/bin/bash

#
# Seul les script destinés a la publication sont authorisé en fichiers cachés (.*)
# executer le script sur le repertoire racine des fichiers a coloriser.
#

# Si un repertoire est donné en arg on le traite sinon on traite le repertoire courant.

SOURCE=$1
PAGE=config.php

if [ -z "$SOURCE" ]
then
    SOURCE="."
fi

cd $SOURCE
URL=`pwd |sed "s/.*public_html[a-zA-Z_]*\//\//"`

# on efface les html déjà existants.

LIST=`find $SOURCE -type f|grep "\(\.tmp\..\|\.html\)$"`
if [ "$LIST" ]
then
    echo "Effacement de :
$LIST"
    rm $LIST
fi

# LIST=`ls -A |sort -r` |grep "[^\.]\/"
DOSSIERS=`find $SOURCE -type d`

function color_rep () {

if [ $2 ]
    then
        echo -e "</ul><h2>$2</h2><ul>
" >> $PAGE
fi
for FICHIER in $1
do
# filtrage des adresses mail dans les fichiers de conf pour eviter les spam.
    sed "s/@[-+_a-zA-Z0-9=]\+/@nospam/g" "$FICHIER" > ${FICHIER}.tmp
    sed "s/\(:\/\/.*:\).*@/\1XXXXX@/g" "${FICHIER}.tmp" > $FICHIER
    rm ${FICHIER}.tmp
# transformation en html.
    vim +f +"syntax on" +"so $HOME/bin/2html.vim" +"wq" +"q" "$FICHIER"
# on enleve le ^. du fichier pour qu'il ne soit plus caché.
    FICHIER_NEW=`echo "$FICHIER"| sed "s/\/\./\//"`
# echo "$FICHIER => $FICHIER_NEW"
# Si il faut renomer l'html pour qu'il soit visible.
    if [ "$FICHIER_NEW" != "$FICHIER" ]
        then
#       if [ ! -f "${FICHIER_NEW}.html" ]
#           then
            echo moving ${FICHIER}.html to ${FICHIER_NEW}.html
            mv ${FICHIER}.html ${FICHIER_NEW}.html
    fi
    echo -e "<li><a href=\"${FICHIER_NEW/\.\//<?=\$rep?>/}.html\">${FICHIER_NEW/\.\//}</a></li>\n" >> $PAGE
done
}


echo  "
<h1>Config</h1>
Voici quelques fichiers de config et script que j'utilise :
<ul>" > $PAGE


for DOSSIER in $DOSSIERS
do
    if [ "$DOSSIER" = "." ]
        then
            color_rep "`find $SOURCE -type f|grep -v "\(\.html\|\.swp\)$" | grep -v "\.\/.*\/.*"`" $DOSSIER
        else
            color_rep "`find $SOURCE -type f|grep -v "\(\.html\|\.swp\)$" | grep "$DOSSIER"`" $DOSSIER
    fi
done

echo -e "</ul>

<div class=\"conteneur foot\">
<hr noshade=\"noshade\" width=\"90%\" />
<div class=\"left\">
        <a href=\"colorize.sh\">Télécharger colorize.sh</a>
</div>
<div class=\"right\">
        <a href=\"http://www.gnu.org/licenses/gpl.txt\">Copyright &copy; 2002 </a>
        <a href=\"mailto:michoux AT born2frag DOT org?subject=[colorize.sh]\">Sébastien MICHEL</a>
</div>
</div>
" >> $PAGE


echo "Mise en place des links dans les fichiers html";

# # Files=`ls -A -I*.html|sort -r`
# le sort -r permet de gere les lien vers toto.titi alors que toto existe:
# avec le sort -r on traite d'abord toto.titi puis après toto.
# Sans le sort -r toto aurai cree son lien avec <a href="blaba">toto</a>.titi
Files=`find $SOURCE -type f|grep -v "\(\.html\|\.swp\)$"|sort -r`

for File in $Files
do
    echo "****************** $File ******************"
# liste de tout les fichiers sauf le courant.
    Others=`echo "$Files"|sed "s/${File//\//\\\/}\( \|$\)//"`
# $file.html
    Link="`echo "$File"| sed "s/\/\./\//"`.html"
    echo Lien : $Link !
    echo Tous : $Files !
#   echo Les autres : $Others !
#   ajouter l'extension .html a tout les membres de la liste other et enlever le . des .*
    Others=`echo $Others|sed "s/\( \|$\)/.html /g;s/\/\./\//g"`
    echo Les autres : $Others !
    echo "File : $File => ${File/.*\//} !"
    File_sed=${File/.*\//}
    Link=${Link/\./${URL}}
    Link_sed="${Link//\//\\/}"
    echo "mise au point du lien $File_sed vers $Link_sedet on evite:
a href=${Link_sed%.html}
>$File_sed"
    for I in $Others
    do
#       sed "s`grep -n body $Link|cut -d\":\" -f 1`~1/$File/<a href=$Link>$File<\/a>/g" "$I" >> "$I.tmp"
#       sed "s/$File/<a href=$Link>$File<\/a>/g" "$I" >> "$I.tmp"
# soluce bourine pour eviter les  construction de lien sur:
#   Les ref elle meme
        sed "s/a href=${Link_sed%.html}/a href=/config/X/xsession/g" "$I" >> "$I.tmp.1"
        sed "s/a href=${File_sed}/a href=.xsession/g" "$I.tmp.1" >> "$I.tmp.2"
#   les fichier reference mais qui commencent pareil.
        sed "s/>$File_sed/>.xsession/g" "$I.tmp.2" >> "$I.tmp.3"
# enfin on peut creer le nouveau lien
        sed "s/$File_sed/<a href=$Link_sed>$File_sed<\/a>/g" "$I.tmp.3" >> "$I.tmp.4"
# et remettre les anciens liens comme avant.
        sed "s/>.xsession/>$File_sed/g" "$I.tmp.4" >> "$I.tmp.5"
        sed "s/a href=.xsession/a href=${File_sed}/g" "$I.tmp.5" >> "$I.tmp.6"
        sed "s/a href=/config/X/xsession/a href=${Link_sed%.html}/g" "$I.tmp.6" >> "$I.tmp"
# effacer tout les fichiers temporaires....
        rm $I.tmp.*
#... sauf le .tmp qui est le resultat.
        mv $I.tmp $I
    done
done