#!perl -w
# remd: liste tout les fichiers et sous-répértoires
du repertoires désiré dans un fichier rep.dat
# ou seulement les fichiers ayant l'extention ou
les extentions désirés. Pratique
#
=== a_l_a_i_n -//- a_d_e_l_m_a_r === aadelmar@wanadoo.fr
$i = 0;
$dt =
"\nFait le : " . localtime(time)
. "\n";
print "Indiquez
le dossier a traiter:\n";
chomp (
$dir = <STDIN>);
if (
$dir !~ /\\$/)
{
$dir =
$dir . "\\";
}
opendir R, "
$dir" or die
"Ouverture repertoire impossible
$!";
foreach $file
(sort readdir R) {
$file =
"$file\n";
print
<STDOUT>, $file;
push
@f_du_rep, $file;
}
#si vous désirez faire qq aux fichier du
répértoire c'est là
closedir R
or die "Fermeture du repertoire
impossible $!";
print "voulez
vous une liste par extention[s]\n(entrez l'extention ex: .html,.txt)ou\ncontinuer
pour le contenu du répertoire [Enter]\n";
chomp (
$resp = <STDIN>);
if (
$resp eq
"") {
$fout =
"$dir" . "rep.dat";
open F,
">$fout" or die
"Ouverture du fichier rep impossible $!";
print
F @f_du_rep;
print F
$dt;
close F
or die "Fermeture impossible
bordel $!";
print
"Le contenu du répertoire à était copier
dans $fout\nTchao! bonne journée\n";
}
else {
#on place la liste des extentions dans une
variable liste, car on n'en connais pas le nombre.
@ext =split(
/,/, $resp);
print
"$ext[0]\n";
print
"$ext[1]\n";
for ($ext[0]
.. $#ext) {
foreach
$file(@f_du_rep) {
if (
$file =~ /($ext[$i])$/)
{
push
@extn, $file;
}
}
$i++;
}
# si vous voulez changer d'endroit pour ecrire
le fichier liste oter le premier "$dir"
$fout =
"$dir" . "rep_by_" .
"$ext[0]" . '.dat';
open FE,
">$fout" or die "Ouverture de $fout impossible $!";
print FE
@extn;
print FE
$dt;
close FE
or die "fermeture de $fout
impossible $!";
}
END;
#!/usr/bin/perl -w
#!perl -w
# remd: liste le contenu des repertoires désiré dans un fichier rep.html et un rep.dat.*
# requier le module FrDate.pm pour l'affichage de (la date et l'heure en français) *
# écris par Alain Adelmar aadelmar@free.fr _ peut être utiliser sur tout OS (Lx, M$) *
# Multi environement (UNIX-Like, MicroSoft, msys, cygwin)_ version:2.2 du 20/03/2004 *
# Usage: rep2html [repertoire] pour avoir un repertoire au choix *
# rep2html pour avoir le repertoire courant (defaut) : *
# ------------------écrit par alain Adelmar -------------------------------------------*
# Enjoyed, that's a aadelmar's script, fun free and french "hé, ouai mon pote" *
#--------------------------------------------------------------------------------------*
use Cwd;
$dir = cwd;
use FrDate;
$mod_affichage = 2;
$fd = maintenant($mod_affichage);
my $vide = " " x 30;
my $x ="*-" x 25;
my $tiret = "-" x50;
my $nlr = 0;
my $al = "\t=== A_l_a_i_n -\/\/- A_d_e_l_m_a_r === |";
my $lbl = "$x\n$al\n$x\n\n";
my $mi = "<hr\>alain Adelmar <a href=\"mailto:aadelmar\@free.fr\"\>aadelmar\@free.fr<\/a\>\n";
if (@ARGV) {
if($ARGV[0] =~ /^-/) {
s/-()/$1/;
$argv = $1;
$d = $ARGV[1];
print "$x\n$al\n\n$x\n\n";
}
else {
$d = $ARGV[0];
print "$x\n$al\n\n$x\n\n";
}
}
else {
print
print "usage: rep2html [répértoire] \n";
print "Indiquez le dossier a traiter:\n";
chomp($d = <STDIN>);
}
format STDOUT_TOP =
Page @<<
$%
Fichier Date du dernier changement
===================== ===========================
.
if ($d eq "") {
$d = $dir;
}
else {
unless (-d $d) {
print "Entrez un chemin de fichier valide:\n";
$d = <STDIN>;
chomp $d;
}
}
if ($ENV{"MACHTYPE"}=~ /[msys|cygwin|gnu]$/) {
$gnus++;
print "this is a real gnu OS, congratulation\n";
}
elsif ($ENV{"PATH"}=~ /^\//) {
$gnus++;
print "this is a real gnu OS, congratulation\n";
}
@gnul = ("\\", "\/");
@ds = split(/$gnul[$gnus]/, $d);
$ds = pop @ds;
$fout = "rep_" . "$ds" . ".html";
&gnotise($fout);
$fout_dat = "rep_" . "$ds" . ".dat";
&gnotise($fout_dat);
open OUT, ">$fout" or die "Ouverture du fichier rep impossible $!";
print OUT "<HTML\>\n\t<head\>\n\t\t<meta http-equiv=\"Content-Type\" content=\"text\/html;
charset=iso-8859-1\"\>\n\t\t<meta name=\"author\" content=\"adelmar alain et
Perl\"\>\n\t<\/head\>\n<body\><br>\n";
print OUT "Edité automatiquement par le script rep2html\.pl le: " . "$fd" . "\nn\'efféctuez pas
de modifications (SVP)\.\n<hr\>\n";
open OUTDAT, ">$fout_dat" or die "Screugneugneu $fout_dat ne veux pas souvrir $!";
print OUTDAT "Edité automatiquement par le script rep\.pl le: " . "$fd" . "\nn\'efféctuez pas de modifications (SVP)\.\n";
opendir R, "$d" or die "Ouverture repertoire impossible $!";
$opd = 1;
foreach $file (sort readdir R){
$u++;
next if ($file =~ /^\./);
$frd = datefichier($mod_affichage, $opd, $file);
$line = ":$file\n\t$frd\n";
if(-d $file) {
$reptmp = "d";
print OUT "<img SRC=\"folder.jpg\"\> <b\><a href=\"$d" . "$gnul[$gnus]" . "$file\"\>$file<\/a\><\/b\><br\><div align=center\>$frd<\/div\><br\>\n";
write;
print OUTDAT "$reptmp $line";
}
elsif(-f $file) {
print OUT "<img SRC=\"file.jpg\"\> <a href=\"$d" . "$gnul[$gnus]" . "$file\"\>$file<\/a\><br\><div align=center\>$frd<\/div\><br\>\n";
#damned avec remd: je pourrai carrement afficher le commentaire à coté du liens (but no alias sur M$)
$reptmp = "f";
$rem = &remdthat($file);
write;
if ($argv eq "c") {
print OUTDAT "$reptmp $line\n$rem\n";
}
print OUTDAT "$reptmp $line";
}
else {
print OUT "<img SRC=\"file.jpg\"\> <a href=\"$d" . "$gnul[$gnus]" . "$file\"\>$file<\/a\><br\><div align=center\>$frd<\/div\><br\>\n";
#damned avec remd: je pourrai carrement afficher le commentaire à coté du liens (but no alias sur M$)
$reptmp = "f";
$rem = &remdthat($file);
write;
if ($argv eq "c") {
print OUTDAT "$reptmp $line\n$rem\n";
}
print OUTDAT "$reptmp $line";
}
}
closedir R or die "Fermeture du repertoire impossible $!";
print OUTDAT "\n$lbl\n";
close OUTDAT || die "Fartoi encoula granda connasse, 30000 fois saloperie ce ptain de $fout_dat
ne veut pas ce fermer $!";
print OUT "$mi\n";
close OUT or die "Fermeture impossible bordel $!";
print "nombre de fichier traite $u\n";
print "\n\nUn fichier $fout a été créé ainsi qu'un fichier $fout_dat\nBonne journée\nalain\n";
sub gnotise($fili) {
my($fili)= @_;
if (-e $fili) {
$arch = "$fili" . "~";
rename $fili, $arch or die "impossible de faire comme cela $!";
}
}
sub remdthat {
my($file)=@_;
(@contenu, @remd)= "";
$filnm = "$d" . "$gnul[$gnus]" . "$file";
open F, "$filnm" or die "Ouverture de $file impossible $!";
@contenu = F;
$nlr = 0;
foreach $l(@contenu) {
if ($nlr >= 1) {
chomp $l;
push @remd, $l;
goto LABELLE if ($nlr == 1);
$nlr--;
}
elsif ($l =~ /remd:/) {
chomp $l;
push @remd, $l;
print "ok pour $l\n";
$nlr = 5; # nombre de lignes de commantaires +1, changer le nombres ici
}
}
LABELLE:close F || die "Fermeture de $file compromise $!";
$rem = join("\n\t", @remd);
return $rem;
}
format STDOUT =
@<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<
$file, $frd
.
END;
précédant
| suivant |
sommaire