zipindex.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:55:01 2010 from zipindex.pl 2005/11/30 3.1 KB.

#!/Perl
print "Hello, World...\n";
# AIM: To read the INPUT directory, and generate a HTML file
# to allow down load of all the ZIPS files found there ...
my $verbose = 1;
my $verb2 = 1;
#my $my_folder = 'C:\HOMEPAGE\Max5\zips';
my $my_folder = shift || die "Must input a FOLDER name ...\n";
my @dirs = ($my_folder); # folders to process
my @dir_obj = (); # start with NONE
my $do_cnt = 0;
my $htm_fil = shift || 'indexall.htm';
my $HF;
my $d;
open $HF, ">$htm_fil" or die "Can NOT open HTML file $htm_fil!\n";
while ( scalar @dirs ) {
   local @dirs2 = @dirs;
   @dirs = ();
   local $dir;
   foreach $dir (@dirs2) {
      print '.' if !$verb2;
      process_dir($dir);
   }
   print "\n" if !$verb2;
}
$do_cnt = scalar @dir_obj;
if ($do_cnt) {
   print "Found $do_cnt zips ...\n";
   add_htm_head($HF, 'Zip File Listing');
   print $HF "<p>Click on the following links to download the ZIP file.</p>\n";
   print $HF "<p align=\"center\">\n";
   foreach $d (@dir_obj) {
      $msg = "<a href=\"$d\">$d</a>";
      print $HF "$msg<br>\n";
   }
   print $HF "</p>\n";
   print $HF "<p>Listed $do_cnt zips for download ...</p>\n";
   add_htm_tail($HF, "<!-- Max5.2005.11.29 geoff mclane - generated by $0 -->");
   close ($HF);
   system $htm_fil;
} else {
   print "WARNING: No zips found ...\n";
}
##################################
# end of program
#################################
### only subs below
#################################
sub add_htm_head {
   local ($fh, $tit) = @_;
   print $fh <<EOF;
<html>
<head>
<title>$tit</title>
</head>
<body>
<h1 align="center">$tit</h1>
EOF
}
sub add_htm_tail {
   local ($fh, $tit) = @_;
   print $fh <<EOF;
</body>
</html>
$tit
EOF
}
sub process_dir {
   local ($in_folder) = @_;
   print "Processing folder $in_folder ...\n" if $verb2;
   if( !( -d $in_folder ) ) {
      print "Folder $in_folder is NOT a directory! ... aborting ...\n" if $verbose;
      return 0;
   }
   if (! opendir(DIRH, $in_folder) ) {
      print "ERROR: Can NOT open directory $in_folder ... aborting ...\n" if $verbose;
      return 0;
   }
   local @files = readdir(DIRH);
   closedir(DIRH);
   local $fcnt = scalar @files;
   if ((! @files) || ($fcnt < 3)) {
      print "No files found in folder $in_folder ...\n" if $verb2;
      return 0;
   }
   local ($fn, $ffn);
   local $got_obj = 0;
   print "Found $fcnt items in folder ...\n" if $verb2;
   $got_obj = 0;
   foreach $fn (@files) {
      if ($in_folder eq '.') {
         $ffn = $fn;
      } else {
         $ffn = $in_folder . '\\' . $fn;
      }
      if ( -d $ffn ) {
         if (($fn eq '.') || ($fn eq '..')) {
            # do nothing
         } else {
            # do nothing
            ###push(@dirs, $ffn);
            ###print "Sub-directory $ffn ...\n" if $verb2;
         }
      } else {
         if ( $fn =~ /\.zip$/i) {
            print "ZIP File $ffn ...\n" if $verb2;
            $got_obj++;
            push(@dir_obj, $ffn);
         } else {
            print "File $ffn ...\n" if $verb2;
         }
      }
   }
   local $dcnt = scalar @dirs;
   if ($got_obj) {
      print "Found $got_obj zips in folder .../n" if $verb2;
   } else {
      print "Found NO zipd in folder ...\n" if $verb2;
   }
   if ($dcnt) {
      print "Found $dcnt directories to process ...\n" if $verb2;
   }
}
# eof - zipindex.pl

index -|- top

checked by tidy  Valid HTML 4.01 Transitional