#!/usr/local/bin/perl
require "/w/class.01/cs/cs131/cs131ta/risc/grades/column_names";  

$seas=shift @ARGV;
$column=convert_col (shift @ARGV);
$val=shift @ARGV;	#actual grade

unless ($seas && (defined ($val) && $val >=0) && $column>0) {
  print "Syntax is editgrade SEAS column_number numerical_grade
column name can be used inplace of number (hw1pa, hw2wa,  mid, ... 
values parsed: seas=$seas, column=$column, grade=$val\n";
  exit;
}
&readgrades;

foreach $student (@grades) {
  @sgrades=split (/,/, $student, -1);
  if ($sgrades[$columns{seas}] =~ m:^\b$seas\b:i) {  #found student
    $found=1;
    if ($sgrades[$column] ne "" && $sgrades[$column] ne $val) {#already have grade
      print "$seas already had $sgrades[$column], now its $val\n";
    }
    if ($sgrades[$columns{fname}] eq '' || $sgrades[$columns{lname}] eq '' || 
	$sgrades[$columns{lecture}] eq '') {
      print "Missing some vals for $seas\n";
      $missing=1;
    }
    if ($val =~ m:([+-])(\d+):) {
      $sgrades[$column]+=$val if ($1 eq '+');
      $sgrades[$column]+=$val if ($1 eq '-');
    }
    else {$sgrades[$column]=$val;}
    $student=join (",", @sgrades);
  }
}

unless ($found) {print "couldn't find them\n";exit;}
 
&writegrades;

if ($missing==1) {
  print "Some non-critical (name, lecture) values are missing, edit grades.csv if info is available\n";
}

