##################################################
-sub purge;
-
my $db;
sub safe_can_nodie {
owner => $jobr->owner,
job => $jobr->id,
solved => $solved}) if !$jobr->problem->private;
-
- purge '/log/';
- purge "/log/$job";
- purge '/st/' . $jobr->contest if $jobr->contest;
- purge '/us/';
- purge '/us/' . $jobr->owner;
}
sub got_job{
}
sub run{
- warn "No GRUNTMASTER_VM environment variable. Running without a VM is a security risk.\n" unless $ENV{GRUNTMASTER_VM};
require Gruntmaster::Data;
- Gruntmaster::Data->import;
- $db = Gruntmaster::Data->connect('dbi:Pg:');
+ $db = Gruntmaster::Data->connect($ENV{GRUNTMASTER_DSN} // 'dbi:Pg:');
Log::Log4perl->init('/etc/gruntmasterd/gruntmasterd-log.conf');
get_logger->info("gruntmasterd $VERSION started");
- chdir tempdir 'gruntmasterd.XXXX', CLEANUP => 1, TMPDIR => 1;
+ my $dir = tempdir 'gruntmasterd.XXXX', CLEANUP => 1, TMPDIR => 1;
+ chmod 0711, $dir;
+ chdir $dir;
while (1) {
my $job = $db->jobs->search({daemon => undef}, {rows => 1})->first;
got_job $job if defined $job;