#! /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();