X-Git-Url: http://git.ieval.ro/?p=gruntmaster-daemon.git;a=blobdiff_plain;f=lib%2FGruntmaster%2FDaemon.pm;h=ccf9e4e213f10f88076fec3bd2de6154b5936f34;hp=f0e66f25c4d7e569ee665278168b6879880abd64;hb=1fc8d0246c090476d30bfde6085c092fb607f7ae;hpb=5c5cd38ad5b9e3c2b331564bc0b23e9167b7d07a diff --git a/lib/Gruntmaster/Daemon.pm b/lib/Gruntmaster/Daemon.pm index f0e66f2..ccf9e4e 100644 --- a/lib/Gruntmaster/Daemon.pm +++ b/lib/Gruntmaster/Daemon.pm @@ -55,7 +55,7 @@ sub process{ chdir $dir; mkdir "in"; for (<*>) { - cp $_, "in" unless $_ eq 'in' || $_ eq 'pidfile'; + cp $_, "in" unless $_ eq 'in'; } my @results; @@ -118,23 +118,23 @@ sub process{ # Clean up get_logger->info("Job result: " . $meta->{result_text}); delete $meta->{files}{$_}{run} for keys $meta->{files}; - $meta->{date} = time; $meta->{results} = \@full_results if scalar @full_results; DumpFile "meta.yml", $meta; for (<*>) { - unlink $_ unless $_ eq 'in' || $_ eq 'meta.yml'; + unlink $_ unless $_ eq 'in' || $_ eq 'meta.yml' || ($_ eq 'compile-error' && -s); } chdir '../..'; - mkdir 'log' unless -d 'log'; - IO::File->new('>log/meta.yml')->close unless -f 'log/meta.yml'; - flock my $logmetafh = IO::File->new('{contest} ? "ct/$meta->{contest}/log" : 'log'; + mkdir $log unless -d $log; + IO::File->new(">$log/meta.yml")->close unless -f "$log/meta.yml"; + flock my $logmetafh = IO::File->new("<$log/meta.yml"), LOCK_EX; + my $logmeta = LoadFile "$log/meta.yml"; $logmeta->{last}++; - rename $dir, 'log/' . $logmeta->{last}; - generate 'log/' . $logmeta->{last} . '/index.htm'; - DumpFile 'log/meta.yml', $logmeta; + rename $dir, "$log/$logmeta->{last}"; + generate "$log/$logmeta->{last}/index.html"; + DumpFile "$log/meta.yml", $logmeta; undef $logmetafh; - generate 'log/index.html' + generate "$log/index.html" } sub run{