Bonjour,
Je cherche un petit programme me permettant d'établir un catalogue (simple fichier html) d'un ensemble de répertoire.
Un exemple :
- soit le répertoire music ayant le structure suivante :
- music
--- dir_1
------ file_1
------ file_2
--- dir_2
------ file_1
------ file_2
etc
J'aimerais donc trouver un programme qui créera un fichier html représentant cette structure sous la même forme. Chaque élément étant bien entendu un hyperlien !
L'objectif final est de générer un fichier catalogue que je placerai à la racine d'un répertoire que je graverai. Ce répertoire contient d'autres répertoires, et les fichiers sont de différents types (essentiellement des images et des vidéos).
Journal Catalogue HTML d'un file system
30
nov.
2003
# Re: Catalogue HTML d'un file system
Posté par Laurent Saint-Michel . Évalué à 8.
-- 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);
# Re: Catalogue HTML d'un file system
Posté par schyzomarijks . Évalué à 4.
Je te laisse comme exercice de faire du html valide, c'est pas trop dur.
[^] # Re: Catalogue HTML d'un file system
Posté par schyzomarijks . Évalué à 1.
le script se lance avec comme 1 argument le répertoire à analyser
[^] # Re: Catalogue HTML d'un file system
Posté par TazForEver . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.