# This script accepts directory names on the command line and recursively traverses 
# every subtree looking for all the $filename files on that subtree.  
# Each $filename file found is modified. 
#
# George Cross, Borland EIP QA, January 1999.
#

print("\n".$0.":\n");

die " 
usage: ".$0." <directory names> \n\n" if !@ARGV;


$filename = 'Makefile';

foreach (<@ARGV>){ traverseSubTree($_); }

sub traverseSubTree()
{
	opendir(THISDIR,@_[0]);
	#print join("\n",readdir(THISDIR))."\n"; print @_[0].'/'.$filename."\n";
	if ( -s @_[0].'/'.$filename ){ 
		modifyFile(@_[0].'/'.$filename);
	}
	foreach (grep(/^[^.]/,readdir(THISDIR))){
		if ( -d @_[0].'/'.$_ != 0 ){
			traverseSubTree(@_[0].'/'.$_);
		}
	}
	closedir(THISDIR);
}

sub modifyFile()
{
	print "Modifying file:  ".@_[0]."\n";
	
	$logFile = '    $(EIS_CLASSES)\\$(CURRENT_PACKAGE)\\stdout_stderr.log';
	$txtFile = '    $(EIS_EXTERNAL)\\$(CURRENT_PACKAGE)\\eis_audit.txt';

	# Make a backup copy of our file
	$inFile = @_[0];
	$inFile =~ tr/A-Z/a-z/; 
	rename $inFile, $inFile.".old";
	open(INFILE,"<".$inFile.".old");
	open(OUTFILE, ">".$inFile);

	$found = 0;
	$rmLine = '';

	foreach (<INFILE>){
		if ( $found == 0  ) {
			if ( /(.*RM.*)$/ ){
				$found = 1;
				$rmLine = $1
			} else {
				print OUTFILE $_;
			}
		} else {
			$found = 0;
			if ( /^\s*$/ ) {	
				print OUTFILE $rmLine." \\ \n";
				print OUTFILE $logFile." \\ \n";
				print OUTFILE $txtFile." \\ \n\n";
			} else {
				print OUTFILE $rmLine." \n";
				print OUTFILE $_;
			}
		}
	}
	close(OUTFILE);
	close(INFILE);
}
