Rechercher dans ce blog

samedi 25 avril 2009

files directory listing to html page with hyperlinks - perl script

Petit script que j'ai écrit pour créer une page htlm qui liste les entrées d'un répertoire et crée les liens vers les fichiers.

C'est un script perl rudimentaire mais qui fait ce dont j'avais besoin. Avant de l'écrire je me suis beaucoup énervé à chercher sur le net un script aussi basique et élémentaire sans rien trouver !

#!/usr/bin/perl # Script pour lister sur une page html les entrees d'un repertoire # avec hyperliens vers les fichiers # Version 0.1 - 2009_04_25 # Le href pointe toujours vers un path relatif au dir qui contient les # fichiers listes. La page html doit donc etre placee dans le meme # dossier que les fichiers sur le serveur. @ARGV or die "Usage : %dir2html somedir > liste.html\n"; $some_dir = shift @ARGV; opendir ( DIR, $some_dir ) || die "can't opendir $some_dir: $!"; # Formatage avec des paragraphes plutot que liste a bulle #@dots = map "<p><a href=\"$_\">$_<\/a><\/p>", grep ! /^\./,   readdir ( DIR ) ; # Formatage en liste # J'exclus de la liste de sortie par un simple grep html|htm la page generee # et donc du meme coup tous les fichiers avec ces extensions @dots = map "<li><a href=\"$_\">$_<\/a><\/li>^M", grep ! /.htm ( l ) ?$/, grep ! /^\./,   readdir ( DIR ) ; closedir DIR; print <<EOF; <html> <head>   <meta content="text/html; charset=UTF-8" http-equiv="content-type">   <title>Liste des fichiers du repertoire $some_dir </title>   <meta name="robots" content="noindex, nofollow, noarchive"> </head> <body> <ul> EOF print @dots; print <<EOF; </ul> </body> </html> EOF