59 lines
875 B
Perl
59 lines
875 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;
|
|
|
|
eval {
|
|
$trace = Defense->new($xml);
|
|
};
|
|
if ($@) {
|
|
log ERROR, "Unknown file type: $file";
|
|
}
|
|
}
|
|
|
|
close $xml unless $xml eq *STDIN;
|
|
|
|
$grade->create_from_trace($id_name, $name, $trace);
|
|
|
|
} while ($#ARGV >= 0);
|
|
|
|
print $grade->to_string();
|