Archived
1
0
Fork 0

Replace croak by die when unexpected error

This commit is contained in:
Mercier Pierre-Olivier 2013-11-05 18:03:54 +01:00
parent fe9cc480a1
commit 0af1174ca8

View file

@ -42,7 +42,7 @@ sub create_tree($$)
croak "No directory for year $year. Ask a root to create it." if (! -d "$basedir/$year/");
if (! -e "$basedir/$year/$project_id/") {
mkdir "$basedir/$year/$project_id/" or croak $!;
mkdir "$basedir/$year/$project_id/" or die $!;
}
}
@ -57,11 +57,14 @@ sub grades_generate
croak "No project_id given." if (! $project_id);
if (! -e "$basedir/$year/$project_id/grades/") {
mkdir "$basedir/$year/$project_id/grades/" or croak $!;
mkdir "$basedir/$year/$project_id/grades/" or die $!;
}
log DEBUG, "Generate list of students";
# Get groups from the intranet
my $groups = API::Projects::get_groups($project_id, $year);
# Create list of students to generate
my @logins;
if ($args->{unamed})
@ -72,22 +75,11 @@ sub grades_generate
}
else
{
opendir(my $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))
{
opendir(my $dhm, "$basedir/$year/$project_id/traces/$dir") or croak "can't opendir $basedir/$year/$project_id/traces/$dir: $!";
for my $login (grep { ( ! /^\./ ) && -f "$basedir/$year/$project_id/traces/$dir/$_" } readdir($dhm))
{
$login =~ s/\.xml$//;
if (! grep { /^\Q$login\E$/ } @logins) {
push @logins, $login;
}
map {
for my $member (@{ $_->{stds} }) {
push @logins, $member->{login};
}
closedir $dhm;
}
closedir $dh;
} @{ $groups->{groups} };
}
log TRACE, @logins;
@ -110,18 +102,46 @@ sub grades_generate
log DEBUG, "Generating grades for $login";
for my $dir (@trace_dirs)
{
log DEBUG, "Generating grades from $dir";
if (-f "$basedir/$year/$project_id/traces/$dir/$login.xml")
log DEBUG, "Fetching identifiers from $dir";
my $tr_file = "$year/$project_id/traces/$dir/$login.xml";
# Looking for a group traces?
if (! -f "$basedir/$tr_file")
{
open my $xmltrace, "<", "$basedir/$year/$project_id/traces/$dir/$login.xml" or croak "traces/$dir/$login.xml: $!";
for my $grp (@{ $groups->{groups} })
{
my $this = 0;
my $chief;
for my $member (@{ $grp->{stds} })
{
if ($member->{chief} eq "true" or $member->{chief} eq "1" or $member->{chief} eq "chief")
{
$chief = $member;
next;
}
$this = 1 if ($member->{login} eq $login);
}
if ($this && $chief)
{
$tr_file = "$year/$project_id/traces/$dir/".$chief->{login}.".xml";
log DEBUG, "Using group trace: chief is ".$chief->{login};
last;
}
}
}
if (-f "$basedir/$tr_file")
{
open my $xmltrace, "<", "$basedir/$tr_file" or croak "$tr_file: $!";
binmode $xmltrace;
my $trace = Trace->new($xmltrace);
close $xmltrace;
log DEBUG, "Fill from file: traces/$dir/$login.xml";
log DEBUG, "Fill from file: $tr_file";
log TRACE, $trace->getIds;
$grading->fill($trace->getIds);
$grading->fill($trace->getIds($login));
}
}
@ -149,10 +169,10 @@ sub grades_new_bonus
croak "No project_id given" if (! $project_id);
if (! -e "$basedir/$year/$project_id/traces/") {
mkdir "$basedir/$year/$project_id/traces/" or croak $!;
mkdir "$basedir/$year/$project_id/traces/" or die $!;
}
if (! -e "$basedir/$year/$project_id/traces/bonus/") {
mkdir "$basedir/$year/$project_id/traces/bonus/" or croak $!;
mkdir "$basedir/$year/$project_id/traces/bonus/" or die $!;
}
for my $kfile (keys %{ $args->{files} })
@ -192,7 +212,7 @@ sub grades_new_bonus
}
if (-e "$basedir/$year/$project_id/traces/bonus/$login.xml") {
open my $xml, "<", "$basedir/$year/$project_id/traces/bonus/$login.xml" or croak $!;
open my $xml, "<", "$basedir/$year/$project_id/traces/bonus/$login.xml" or die $!;
binmode $xml;
$trace = Trace->new($xml);
close $xml;
@ -216,7 +236,7 @@ sub grades_new_bonus
log DEBUG, "Updating $basedir/$year/$project_id/traces/bonus/$login.xml";
open my $xml, ">", "$basedir/$year/$project_id/traces/bonus/$login.xml" or croak $!;
open my $xml, ">", "$basedir/$year/$project_id/traces/bonus/$login.xml" or die $!;
print $xml $trace->toString();
close $xml;
}
@ -251,19 +271,19 @@ sub update_defense
log INFO, "Update $year/$project_id/defenses/$defense_id.xml";
if (! -e "$basedir/$year/$project_id/defenses/") {
mkdir "$basedir/$year/$project_id/defenses/" or croak $!;
mkdir "$basedir/$year/$project_id/defenses/" or die $!;
}
if (! -e "$basedir/$year/$project_id/traces/") {
mkdir "$basedir/$year/$project_id/traces/" or croak $!;
mkdir "$basedir/$year/$project_id/traces/" or die $!;
}
if (! -e "$basedir/$year/$project_id/traces/defense_$defense_id/") {
mkdir "$basedir/$year/$project_id/traces/defense_$defense_id/" or croak $!;
mkdir "$basedir/$year/$project_id/traces/defense_$defense_id/" or die $!;
my ($login, $pass, $uid, $gid) = getpwnam("www-data");
chown $uid, $gid, "$basedir/$year/$project_id/traces/defense_$defense_id/" or croak $!;
chmod 0775, "$basedir/$year/$project_id/traces/defense_$defense_id/" or croak $!;
chown $uid, $gid, "$basedir/$year/$project_id/traces/defense_$defense_id/" or die $!;
chmod 0775, "$basedir/$year/$project_id/traces/defense_$defense_id/" or die $!;
}
open my $out, ">", "$basedir/$year/$project_id/defenses/$defense_id.xml" or croak $!;
open my $out, ">", "$basedir/$year/$project_id/defenses/$defense_id.xml" or die $!;
print $out $defense;
close $out;
@ -322,11 +342,11 @@ sub update_trace
log INFO, "Update $year/$project_id/traces/$rendu_id/$login.xml";
if (! -e "$basedir/$year/$project_id/traces/") {
mkdir "$basedir/$year/$project_id/traces/" or croak $!;
mkdir "$basedir/$year/$project_id/traces/" or die $!;
}
if (! -e "$basedir/$year/$project_id/traces/$rendu_id/") {
mkdir "$basedir/$year/$project_id/traces/$rendu_id/" or croak $!;
chmod 0755, "$basedir/$year/$project_id/traces/$rendu_id/" or croak $!;
mkdir "$basedir/$year/$project_id/traces/$rendu_id/" or die $!;
chmod 0755, "$basedir/$year/$project_id/traces/$rendu_id/" or die $!;
}
open my $out, ">", "$basedir/$year/$project_id/traces/$rendu_id/$login.xml" or croak("Unable to write to $rendu_id/$login.xml");