epita-std
/
ACU
Archived
1
0
Fork 0
This repository has been archived on 2021-10-08. You can view files and clone it, but cannot push or open issues or pull requests.
ACU/grades/gen_grading.pl

62 lines
911 B
Perl

#! /usr/bin/env perl
use v5.10.1;
use strict;
use warnings;
use Getopt::Long;
use Pod::Usage;
use lib "..";
use ACU::Defense;
use ACU::Grading;
use ACU::Log;
use ACU::Trace;
my $grade = Grading->new();
my $lastid = "";
do {
my $name = shift;
my $file;
if (-f $name) {
$file = $name;
$name = "rendu-1";
}
else {
$file = shift;
}
my $id_name = $name;
$id_name =~ s/[^a-zA-Z0-9_]/_/g;
my $xml;
open $xml, "<", $file or die $!;
binmode $xml;
my $trace;
eval {
$trace = Trace->new($xml);
};
if ($@) {
open $xml, "<", $file or die $!;
binmode $xml;
my $str;
$str .= $_ while (<$xml>);
eval {
$trace = Defense->new($str);
};
if ($@) {
log ERROR, "Unknown file type: $file";
}
}
close $xml unless $xml eq *STDIN;
$grade->create_from_ids($id_name, $name, $trace);
} while ($#ARGV >= 0);
print $grade->toString();