Archived
1
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
Raw Normal View History

2013-09-05 20:32:05 +00:00
#! /usr/bin/env perl
use v5.10.1;
use strict;
use warnings;
use Getopt::Long;
use Pod::Usage;
use lib "..";
2013-09-12 10:00:18 +00:00
use ACU::Defense;
2013-09-05 20:32:05 +00:00
use ACU::Grading;
2013-09-12 10:00:18 +00:00
use ACU::Log;
2013-09-05 20:32:05 +00:00
use ACU::Trace;
2013-09-09 11:42:44 +00:00
my $grade = Grading->new();
2013-09-12 10:00:18 +00:00
my $lastid = "";
2013-09-09 11:42:44 +00:00
2013-09-05 20:32:05 +00:00
do {
2013-09-12 10:00:18 +00:00
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;
2013-09-09 11:42:44 +00:00
my $xml;
2013-09-12 10:00:18 +00:00
open $xml, "<", $file or die $!;
2013-09-09 11:42:44 +00:00
binmode $xml;
2013-09-12 10:00:18 +00:00
my $trace;
eval {
$trace = Trace->new($xml);
};
if ($@) {
open $xml, "<", $file or die $!;
binmode $xml;
2013-09-22 13:10:32 +00:00
my $str;
$str .= $_ while (<$xml>);
2013-09-12 10:00:18 +00:00
eval {
2013-09-22 13:10:32 +00:00
$trace = Defense->new($str);
2013-09-12 10:00:18 +00:00
};
if ($@) {
log ERROR, "Unknown file type: $file";
}
}
2013-09-09 11:42:44 +00:00
close $xml unless $xml eq *STDIN;
2013-09-05 20:32:05 +00:00
$grade->create_from_ids($id_name, $name, $trace);
2013-09-05 20:32:05 +00:00
} while ($#ARGV >= 0);
2013-09-09 11:42:44 +00:00
2013-09-22 13:10:32 +00:00
print $grade->toString();