Serve raw uncompressed logs directly

This commit is contained in:
Eelco Dolstra 2013-08-30 18:11:03 +00:00
parent fd7e37ef89
commit 6655ada236
2 changed files with 14 additions and 11 deletions

View file

@ -145,7 +145,6 @@ sub showLog {
my ($c, $mode, $drvPath, @outPaths) = @_; my ($c, $mode, $drvPath, @outPaths) = @_;
my $logPath = findLog($c, $drvPath, @outPaths); my $logPath = findLog($c, $drvPath, @outPaths);
print STDERR "log = $logPath\n";
notFound($c, "The build log of derivation $drvPath is not available.") unless defined $logPath; notFound($c, "The build log of derivation $drvPath is not available.") unless defined $logPath;
@ -159,8 +158,12 @@ sub showLog {
} }
elsif ($mode eq "raw") { elsif ($mode eq "raw") {
$c->stash->{'plain'} = { data => (scalar logContents($logPath)) || " " }; if ($logPath !~ /.bz2$/) {
$c->forward('Hydra::View::Plain'); $c->serve_static_file($logPath);
} else {
$c->stash->{'plain'} = { data => (scalar logContents($logPath)) || " " };
$c->forward('Hydra::View::Plain');
}
} }
elsif ($mode eq "tail-reload") { elsif ($mode eq "tail-reload") {

View file

@ -270,22 +270,22 @@ sub findLog {
my ($c, $drvPath, @outPaths) = @_; my ($c, $drvPath, @outPaths) = @_;
if (defined $drvPath) { if (defined $drvPath) {
my $logPath = getDrvLogPath($drvPath); my $logPath = getDrvLogPath($drvPath);
return $logPath if defined $logPath; return $logPath if defined $logPath;
} }
return undef if scalar @outPaths == 0; return undef if scalar @outPaths == 0;
my @steps = $c->model('DB::BuildSteps')->search( my @steps = $c->model('DB::BuildSteps')->search(
{ path => { -in => [@outPaths] } }, { path => { -in => [@outPaths] } },
{ select => ["drvpath"] { select => ["drvpath"]
, distinct => 1 , distinct => 1
, join => "buildstepoutputs" , join => "buildstepoutputs"
}); });
foreach my $step (@steps) { foreach my $step (@steps) {
my $logPath = getDrvLogPath($step->drvpath); my $logPath = getDrvLogPath($step->drvpath);
return $logPath if defined $logPath; return $logPath if defined $logPath;
} }
return undef; return undef;