#!/usr/bin/perl
use strict;

      sub making_of_list {
        opendir (FTP, "C:/ftproot") or die $!;
        open (FILES, ">> c:/docu/ftproot.txt") or die $!;
        while (my $file = readdir FTP) {
                if ($file =~ /txt|doc|mpd|mta/i) {
                        print FILES $file,"\n";
                }
        }
        closedir FTP;
        close FILES;
      }


############################################################

        sub copy_from_root {
          open (FILE, "c:/docu/ftproot.txt")   or die $!;
          open (PATS, $patterns) or die "$!";
          while (<FILE>) {
        	print $_,"\n";
                my $reports = $_;
                my $invoice = 0;
                if ($reports =~ /^{af,cs,sf}inv/i 
                 || $reports =~ /mta/i) {
                  $invoice = $reports !~ /mta/i;
                  $reports =~ s/.mta/.mpd/ig;
                } elsif ($reports =~ /doc/i) {
                  $reports =~ s/doc/txt/ig;
                }
                my $daym = (localtime)[3];
                my $source = "c:/ftproot/$report";
                foreach my $dest ("c:/scripts/attempt/$reports",
                                  "c:/afis3too/$daym/$reports",
                                  "c:/reports/$reports",
                                 ) {
                        copy ($source, $dest);
                }
                if ($invoice) {
                  copy($source, "c:/invoice/$reports");
                }
                unlink $source;
        	my $pap = sprintf("%.6s", $_) . ".bat";
        	$pap =~ tr/a-z/A-Z/;
        	print PATS $pap,"\n";
          }
          close PATS;
          close FILE;
        }


############################################################

sub make_list_for_batches {

my $lst = "c:/scripts/fink.txt";

open (LST, $lst) || die $!;
my (@array, %hash);
foreach (<LST>) {
	push (@array, $_) unless (defined($hash{$_}));
	$hash{$_} = 1;
};
close (LST);
open (LST, ">$lst") || die $!;
print LST join("", @array);
close (LST);
}

############################################################

sub this_gets_a_listing_of_the_batch_files {

my $bats="c:/reports";
opendir (BATS, $bats) || die $!;
my @bat = readdir BATS;
close BATS;
my $r=0;
foreach (@bat) {
	if ("$bat[$r]" =~ /bat/i) {
		open (STAB, "+>>c:/scripts/bats.txt") || die $!;
		print STAB $bat[$r],"\n";
	}
	$r++;
}
close STAB;
}

############################################################

sub wow {

my $batch="c:/scripts/bats.txt";
my $fink = "c:/scripts/fink.txt";
my $wow="c:/scripts/wow.txt";
open (BAT, "+$batch") or die $!;
open (LST, "+$fink") or die $!;
my @batch = <BAT>;
my @lst = <LST>;
my $c = 0;
foreach (@lst){
	my $sub=$lst[$c];
	my $d=0;
	foreach (@batch){
		my $sub2 = $batch[$d];
		if ("$sub2" =~ /$sub/ig){
			open (WOW, "+>>$wow") or die $!;
			print WOW $batch[$d];
			print "Working...\n";
		}$d++;
	}$c++;
}
close BAT;
close LST;
close WOW;
}

############################################################

sub run_the_batches {

my $copy="c:/scripts/wow.txt";
open (COPY, "+$copy") || die $!;
my @co = <COPY>;
chomp @co = <COPY>;
my $s=0;
my $output = "c:/reports/$co[$s]";
foreach (@co) {
	system ($output);	
	$s++;
}

}

############################################################

sub delete {

my $fink = "c:/scripts/fink.txt";
my $bat = "c:/scripts/bats.txt";
my $wowo = "c:/scripts/wow.txt";
my $ftpr = "c:/docu/ftproot.txt";

open (FINK, "+>$fink") || die "$!";
open (BAT, "+>$bat") || die "$!";
open (WOW, "+>$wowo") || die "$!";
open (FTP, "+>$ftpr") || die "$!";

unlink <FINK>;
unlink <BAT>;
unlink <WOW>;
unlink <FTP>;

}

#
#
#
#
#
############################################################

############################################################


print "\n\n\n";
print "         Robco Inc. Presents :   \n\n\n";
print "     The NEW, AMAZING, INCREDIBLE ....\n\n\n";
print "      Robco Document Rotisserie!!!!!\n\n\n";
print "Just RENDER it, THEN don't REMEMBER it!!!!!\n\n";
print "         It's just that easy.\n\n\n\n\n";

while (1) {

	my $clock = localtime;
	print $clock,"\n";
	print "sleeping ....  ZzZzZzZzZz......\n";
	sleep (10);
	print "OK! OK!  ....  I'm awake!  ....  I'm awake\n";
	&copy_from_root;
	&make_list_for_batches;
	&this_gets_a_listing_of_the_batch_files;
	&wow;
	&run_the_batches;
	&delete;
	&making_of_list;	
}
