Add script for grades generation
This commit is contained in:
parent
8640b5c98c
commit
641b516355
1 changed files with 55 additions and 0 deletions
55
grades/generate.pl
Normal file
55
grades/generate.pl
Normal file
|
@ -0,0 +1,55 @@
|
|||
#! /usr/bin/env perl
|
||||
|
||||
use v5.10.1;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
use Pod::Usage;
|
||||
|
||||
BEGIN {
|
||||
push @INC, "../common";
|
||||
}
|
||||
use Grading;
|
||||
use Trace;
|
||||
|
||||
# Parse arguments
|
||||
my $input;
|
||||
my $help; my $man;
|
||||
GetOptions ("help|h|?" => \$help,
|
||||
"man" => \$man,
|
||||
"" => \$input)
|
||||
or pod2usage(2);
|
||||
pod2usage(1) if $help;
|
||||
pod2usage(-exitval => 0, -verbose => 2) if $man;
|
||||
|
||||
|
||||
my $xmlgrading;
|
||||
if ($#ARGV == -1) {
|
||||
pod2usage(1);
|
||||
}
|
||||
else {
|
||||
open $xmlgrading, "<", shift or die $!;
|
||||
}
|
||||
|
||||
binmode $xmlgrading;
|
||||
my $grade = Grading->new($xmlgrading);
|
||||
close $xmlgrading;
|
||||
|
||||
|
||||
do {
|
||||
my $xmltrace;
|
||||
if (defined $input || $#ARGV == -1) {
|
||||
$xmltrace = *STDIN;
|
||||
}
|
||||
else {
|
||||
open $xmltrace, "<", shift or die $!;
|
||||
}
|
||||
|
||||
binmode $xmltrace;
|
||||
my $trace = Trace->new($xmltrace);
|
||||
close $xmltrace unless $xmltrace eq *STDIN;
|
||||
|
||||
$grade->fill($trace->getIds);
|
||||
|
||||
say $trace->getInfo("assistant").",".$grade->compute();
|
||||
} while ($#ARGV >= 0);
|
Reference in a new issue