Archived
1
0
Fork 0

Generate defense ids for multiple defense

This commit is contained in:
Mercier Pierre-Olivier 2013-09-26 04:32:31 +02:00
parent 3ec51c56fc
commit 899fd189f5
2 changed files with 14 additions and 7 deletions

View file

@ -124,9 +124,10 @@ sub getIds ($)
return \%ids;
}
sub genIds ($)
sub genIds ($;$)
{
my $self = shift;
my $def_i = shift // 1;
my @ids;
my $grp_i = 0;
@ -136,7 +137,7 @@ sub genIds ($)
if (! $group->{id} || grep { /^\Q$group->{id}\E$/ } @ids)
{
do {
$cur_gid = "defg".$grp_i;
$cur_gid = "def".$def_i."g".$grp_i;
$grp_i += 1;
} while (grep {$_ eq $cur_gid} @ids);
$group->{id} = $cur_gid;

View file

@ -39,8 +39,10 @@ sub process
# Create defenses groups
opendir(my $dh, "$basedir/$year/$project_id/defenses/") or croak "can't opendir $basedir/$year/$project_id/defenses/: $!";
for my $sout (grep { ( ! /^\./ ) && -f "$basedir/$year/$project_id/defenses/$_" } readdir($dh))
{
push @defenses, $sout;
{
my $sid;
($sid = $sout) =~ s/\.xml$//;
push @defenses, $sid;
open my $xml, "<", "$basedir/$year/$project_id/defenses/$sout" or die $!;
binmode $xml;
@ -52,8 +54,12 @@ sub process
my $ids = $defense->getIds();
$ids->{'def_end_$LOGIN'} = undef;
$ids->{'def_end_group'} = undef;
my @keys = keys %$ids;
my $def_i = $keys[0];
$def_i =~ s/^(.+)g.*$/\1/;
$ids->{$def_i.'_end_$LOGIN'} = undef;
$ids->{$def_i.'_end_group'} = undef;
$grade->create_from_ids($sout, $ids);
}
@ -63,7 +69,7 @@ sub process
opendir($dh, "$basedir/$year/$project_id/traces/") or croak "can't opendir $basedir/$year/$project_id/traces/: $!";
for my $dir (grep { ( ! /^\./ ) && -d "$basedir/$year/$project_id/traces/$_" } readdir($dh))
{
next if (! grep { $dir eq "defense_$_" } @defenses);
next if (grep { $dir eq "defense_$_" } @defenses);
my $ids = {};