Code:
#!/usr/bin/perl -w
use strict;
use File::Find;
use URI::Escape;
use HTML::Entities;
my $startdir = $ARGV[0];
my $htmlfile = $ARGV[1];
if( $startdir eq '' or $htmlfile eq '') {
usage();
exit;
}
open(OUT, ">$htmlfile") or die "Schreibfehler '$htmlfile' -$!\n";
print OUT << "__START__";
<html>
<head>
<title>Verzeichnislisting für $startdir</title>
</head>
<body>
<h1>$startdir</h1>
__START__
find(\&link, $startdir);
print OUT << '__ENDE__';
</body>
</html>
__ENDE__
close(OUT);
exit;
sub link {
return() if( $_ eq '.' or $_ eq '..');
print OUT "<a href=\"" . uri_escape($File::Find::name) . "\"> " . encode_entities($_) . "</a>
\n";
}
sub usage {
print STDERR << '__UND_AUS__';
make_index.pl dir html-file
dir ... Das Directory, das indiziert werden soll
html-file ... Das File, in das der Index geschrieben werden soll
__UND_AUS__
};