Replace croak by die when unexpected error
This commit is contained in:
parent
fe9cc480a1
commit
0af1174ca8
1 changed files with 55 additions and 35 deletions
|
@ -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");
|
||||
|
|
Reference in a new issue