• # Re: Catalogue HTML d'un file system

    Posté par . En réponse au journal Catalogue HTML d'un file system. Évalué à 8.

    Tu peux esayer le logiciel tree avec l'option -H il permet d'évoir un fichier html. Tiens voici mon petit montage pour faire ce que tu veux faire : avec en oplus un gestions des mouvements (suppressions, ajouts, ...). Si tu veux les originaux mail moi.

    -- Fichier listing

    #!/bin/bash

    # Description : ce script utilise les commande de shell pour faire
    # un listing des fichiers présents, la sorite est en HTML
    # Il faut modifier la sortie après par un script Perl

    # On créé :
    # - 1 fichier listing-12-12-02 qui contient la liste des répertoires + des
    # fichiers de /mnt/divers/mp3 de toute l'arborescence sans le répertoire
    # .gestion qui ne contient rien d'interessant
    # - 1 fichier repertoires-12-12-02 qui contient la liste des répertoires
    # de /mnt/divers/mp3 de toute l'arborescence sans le répertoire
    # .gestion qui ne contient rien d'interessant
    # - 1 fichier "old" pour l'ancien fichier
    # - 1 fichier de différence pour listing
    # - 1 fichier de différence pour repertoires


    # C'est parti mon quiqui

    #on va dans le répertoire de stockage
    cd /mnt/divers/mp3/.gestion/

    # On copie les "anciens fichiers" standards
    cp -f listing listing.old
    cp -f repertoires repertoires.old
    cp -f diff diff-`date +'%d-%m-%y'`

    # On fait les "nouveaux fichiers" standard (pas d'extension HTLM)
    # Sans la date
    tree /mnt/divers/mp3/ -H 'ftp://xxxx.dyndns.org'(...) > listing
    tree /mnt/divers/mp3/ -d -H 'ftp://xxxx.dyndns.org'(...) > repertoires
    # Avec la date
    tree /mnt/divers/mp3/ -H 'ftp://xxxx.dyndns.org'(...) > listing-`date +'%d-%m-%y'`
    tree /mnt/divers/mp3/ -d -H 'ftp://xxxx.dyndns.org'(...) > repertoires-`date +'%d-%m-%y'`

    # On fait la différence
    echo "Fichier de différence" > diff
    echo "Date de l'enregistrement : `date +'%d-%m-%y'`" >> diff
    echo "" >> diff
    diff listing.old listing | grep '^>' >> diff
    echo "" >> diff
    echo "#----------#" >> diff
    echo "" >> diff
    diff listing.old listing | grep '^<' >> diff
    echo "</suppression>" >> diff
    #On veut tout garder les infos (ajouts, suppressions)

    --
    et le fichier listing.pl
    --
    #!/usr/bin/perl -w

    # Description : ce script met enforme les résultats obtenus
    # par le script pour faire un listing html

    # On commence par ouvrir les fichiers listing, diff et répertoires
    open (LISTING, "/mnt/divers/mp3/.gestion/listing")or die "Impossible d'ouvrir le fichier: $!";
    open (REPERTOIRES, "/mnt/divers/mp3/.gestion/repertoires") or die "Impossible d'ouvrir le fichier: $!";
    open (DIFF, "/mnt/divers/mp3/.gestion/diff") or die "Impossible d'ouvrir le fichier: $!";

    # Ensuite on ouvre les fichiers HTML résultats
    open (LISTING_HTML, ">/mnt/divers/mp3/.gestion/listing.html")or die "Impossible d'ouvrir le fichier: $!";
    open (REPERTOIRES_HTML, ">/mnt/divers/mp3/.gestion/repertoires.html") or die "Impossible d'ouvrir le fichier: $!";
    open (DIFF_HTML, ">/mnt/divers/mp3/.gestion/diff.html") or die "Impossible d'ouvrir le fichier: $!";

    # ------------------------------------------------------
    # On attaque les définitions pour les fichiers HTML
    # ------------------------------------------------------

    # Listing complet des fichiers
    print LISTING_HTML <<"FIN";
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd(...)">


    Liste des fichiers musicaux
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">



    <!--
    BODY { font-family : courier, arial, sans-serif; }
    .VERSION { font-family : arial, sans-serif; }
    -->



    FIN

    #Listing des répertoires
    print REPERTOIRES_HTML <<"FIN";
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd(...)">


    Liste des répertoires
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">



    <!--
    BODY { font-family : courier, arial, sans-serif; }
    .VERSION { font-family : arial, sans-serif; }
    -->



    FIN

    #Listing des differences
    print DIFF_HTML <<"FIN";
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd(...)">


    Liste des différences
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">



    <!--
    BODY { font-family : courier, arial, sans-serif; }
    .VERSION { font-family : arial, sans-serif; }
    -->



    FIN

    #-------------------------------------------------------
    # Traitement des données
    #-------------------------------------------------------

    #On commence par un tri : on sélectionne entre les bornes
    # et

    #Première itération sur listing
    while () { last if m//; }
    #while() { last if m/<\/BODY>/; print; }
    while () { last if m//; print LISTING_HTML; }

    #Seconde itération sur répertoires
    while () { last if m//; }
    while () { last if m//; print REPERTOIRES_HTML; }

    #On traite les diff maitenant
    print DIFF_HTML "";
    while () { last if m//; }
    while () { last if m/<\/ajout>/; print DIFF_HTML; }
    while () { last if m//; }
    while () { last if m/<\/suppression>/; print DIFF_HTML; }

    #Cloture des fichiers HTML

    print LISTING_HTML <<"FIN";



    Listing generated par tree v1.4b1 © 1996 - 2002 by Steve Baker and Thomas Moore
    HTML output hacked and copyleft © 1998 by Francesc Rocher, modified by Laurent Saint-Michel (2002)
    This software is experimental. Send commends and/or suggestions to Laurent saint-Michel







    FIN

    print REPERTOIRES_HTML <<"FIN";



    Listing generated par tree v1.4b1 © 1996 - 2002 by Steve Baker and Thomas Moore
    HTML output hacked and copyleft © 1998 by Francesc Rocher, modified by Laurent Saint-Michel (2002)
    This software is experimental. Send commends and/or suggestions to Laurent saint-Michel







    FIN

    print DIFF_HTML <<"FIN";



    Listing generated par tree v1.4b1 © 1996 - 2002 by Steve Baker and Thomas Moore
    HTML output hacked and copyleft © 1998 by Francesc Rocher, modified by Laurent Saint-Michel (2002)
    This software is experimental. Send commends and/or suggestions to Laurent saint-Michel







    FIN



    # On ferme les handler sur les fichiers
    close(LISTING_HTML);
    close(REPERTOIRES_HTML);
    close(DIFF_HTML);