#! /usr/bin/perl


# Usage: gradeModule.pl -m M7690-17-2 -G A
# -----

# ----------------------------------------------------------------------
use Getopt::Std;
getopts('m:G:');

$dbDir   = "/home/l_tester/ptr/moduleDB";

print "\n";

chdir("$dbDir");

$modNumber = substr($opt_m,0,5);
$#dir = -1;
$entry = 0;

@dir = `ls -d $modNumber*`;


open(GRAD, ">tempFinalGrade.txt") || die "==> Cannot open $tempFinalGrade.txt\n";


if ($opt_G) {
    
    open(IN, "$dbDir/grades.txt") || die "Cannot open $dbDir/grades.txt\n"; 
    open(NEW,">$dbDir/gradesTmp.txt") || die "Cannot open $dbDir/grades.txt\n"; 
	
    while (<IN>) {
	if (/$modNumber/) { 

	    chop($_);
	    $new = "$modNumber $opt_G";
	    print "replacing \"$_\" with \"$new\" in $dbDir/grades.txt\n ";

	    if(!$entry) { print NEW "$new\n"; }
	    else { print "$modNumber was listed more than once in $dbDir/grades.txt\n"; }

	    $entry = 1;
	}
	else {
	    print NEW "$_";
	}
    }
   
    close(IN);
    close(NEW);
    
    system("mv $dbDir/gradesTmp.txt $dbDir/grades.txt");

    if ( !$entry ) {

	open(OUT, ">>$dbDir/grades.txt") || die "Cannot open $dbDir/grades.txt\n"; 
	print OUT "$modNumber $opt_G\n";
	print "Wrote \"$modNumber $opt_G\" to $dbDir/grades.txt\n ";
	close(OUT);
    }


    
    print GRAD "FINAL DB-GRADE $opt_G\n";
    close(GRAD);

    foreach $d (@dir )  {

	chop($d);
		if (-e "$d/finalGrade.txt" ) { system("rm -f $d/finalGrade.txt"); }
	    
	system("cp tempFinalGrade.txt $d/finalGrade.txt");

	print "\nGRADE MODULE> Wrote grade \"FINAL DB-GRADE $opt_G\" to file:\n";
	print "GRADE MODULE> finalGrade.txt in directory $d...\n\n";
    }

    system("rm -f tempFinalGrade.txt");
}


print "\n";
