favfind.pl to HTML.

index -|- end

Generated: Tue Feb 2 17:54:31 2010 from favfind.pl 2008/02/16 3.2 KB.

#!/perl -w
# NAME: favfind.pl
# AIM: Read Favorites folder, and show a URL on find ...
# 16/02/2008 - Geoff McLane - http://geoffair.net/mperl
use strict;
use warnings;
use File::Basename;
require 'logfile.pl' or die "Unable to load logfile.pl ...\n";
push(@INC, 'C:/GTools/perl');
# log file stuff
my ($LF);
my $pgmname = $0;
if ($pgmname =~ /\w{1}:\\.*/) {
   my @tmpsp = split(/\\/,$pgmname);
   $pgmname = $tmpsp[-1];
}
my $outfile = "temp.$pgmname.txt";
open_log($outfile);
prt( "$0 ... Hello, World ...\n" );
my $def_fav_folder = "C:\\Documents and Settings\\Geoff McLane\\Favorites";
my $find = 'cvs';
my $favfolder = get_favorite_folder();
prt( "Processing folder [$favfolder] ...\n" );
my $basedir = quotemeta($favfolder);
# entries to EXCLUDE
my @fav_exclude = ( 'https://geoffmclane.com:2083/frontend/x/index.html' );
my @dirs = ($favfolder);   # start folder
my @fils = ();            # collection of files from folder
my @found = ();
my @warnings = ();
my @urls = ();
my $msg = '';
# DEBUG ONLY
my $dbg1 = 0;   # show    "Processing $d ...
my $dbg2 = 0;   # show    "Found $fcnt files, and $dcnt directories ...
my $file = '';
my $line = '';
### begin processing
while (@dirs) {
   my @dir2 = @dirs;   # copy array
   @dirs = ();         # and kill these
   foreach my $dn (@dir2) {
      process_dir($dn);   # prcess folder, which may yield more folders
   }
}
my $fcnt = scalar @fils;
prt( "Found $fcnt URL files ...\n" );
foreach $file (@fils) {
   my ($name,$dir,$suffix) = fileparse($file, qr/\.[^.]*/ );
   if ($name =~ /$find/i) {
      prt( "$file\n" );
      push(@found,$file);
   }
}
my $fndcnt = scalar @found;
prt( "Found $fndcnt, containing $find ...\n" );
foreach $file (@found) {
   if ( open( FH, $file ) ) {
      my @lns = <FH>; # slurp in the lines
      close FH;
      foreach $line (@lns) {
         chomp $line;
         if( $line =~ /^URL=/ ) {
            my $u = substr($line,4); ## ~ s/^URL=//;
            prt("$line\n");
            push(@urls,$u);
         }
      }
   } else {
      $msg = "WARNING: FAILED TO OPEN [$file]";
      prt( "$msg\n" );
      push(@warnings,$msg);
   }
}
foreach $line (@urls) {
   prt( "$line\n" );
}
close_log($outfile,1);
exit(0);
############################################
sub get_favorite_folder {
   my $ff = '';
   if( !defined( $ENV{'USERPROFILE'} ) ) {
      mydie( "ERROR: Can NOT locate USERPROFILE in ENVironment!\n" );
   }
   $ff = $ENV{'USERPROFILE'} . '\\Favorites';
   if( !( -d $ff ) ) {
      mydie( "ERROR: Folder $ff is NOT a directory!\n" );
   }
   return $ff;
}
sub get_file_list {
   my ($d, @fs) = @_;
   foreach my $fn (@fs) {
      next if ($fn eq '.');
      next if ($fn eq '..');
      my $ffn = $d . '\\' . $fn;
      if( -d $ffn ) {
         push(@dirs, $ffn);
      } else {
         if ($fn =~ /.+\.url$/i) {
            push(@fils, $ffn);
         } else {
            prt( "Discarding file $ffn ...\n" );
         }
      }
   }
   my $fcnt = scalar @fils;
   my $dcnt = scalar @dirs;
   prt( "Found $fcnt files, and $dcnt directories ...\n" ) if ($dbg2);
}
sub process_dir {
   my ($d) = shift;
   prt( "Processing $d ...\n" ) if ($dbg1);
   if (opendir(DIRH, $d)) {
      my @dfs = readdir(DIRH);
      closedir(DIRH);
      prt( "Found " . scalar @dfs . " entries ...\n" ) if ($dbg1);
      get_file_list($d, @dfs);
   } else {
      prt( "WARNING: Failed to open directory [$d]!...\n" );
   }
}
# eof

index -|- top

checked by tidy  Valid HTML 4.01 Transitional