Author: rob
Date: Tue Jan  4 12:50:59 2011
New Revision: 25379
URL: https://svn.nixos.org/websvn/nix/?rev=25379&sc=1

Log:
hydra: put contents links into html, add links to files from contents page

Modified:
   hydra/trunk/src/lib/Hydra/Controller/Build.pm
   hydra/trunk/src/lib/Hydra/Controller/Root.pm
   hydra/trunk/src/lib/Hydra/Helper/CatalystUtils.pm

Modified: hydra/trunk/src/lib/Hydra/Controller/Build.pm
==============================================================================
--- hydra/trunk/src/lib/Hydra/Controller/Build.pm       Tue Jan  4 12:35:06 
2011        (r25378)
+++ hydra/trunk/src/lib/Hydra/Controller/Build.pm       Tue Jan  4 12:50:59 
2011        (r25379)
@@ -204,7 +204,6 @@
     $c->res->redirect(defaultUriForProduct($self, $c, $product, @path));
 }
 
-
 sub contents : Chained('build') PathPart Args(1) {
     my ($self, $c, $productnr) = @_;
 
@@ -220,6 +219,10 @@
     if ($product->type eq "nix-build" && -d $path) {
         $res = `cd $path && find . -print0 | xargs -0 ls -ld --`;
         error($c, "`ls -lR' error: $?") if $? != 0;
+        
+        my $baseuri = $c->uri_for('/build', $c->stash->{build}->id, 
'download', $product->productnr);
+        $baseuri .= "/".$product->name if $product->name;
+        $res =~ s/(\.\/)($relPathRE)/<a href="$baseuri\/$2">$1$2<\/a>/g;
     }
 
     elsif ($path =~ /\.rpm$/) {
@@ -259,8 +262,9 @@
 
     die unless $res;
     
-    $c->stash->{'plain'} = { data => $res };
-    $c->forward('Hydra::View::Plain');
+    $c->stash->{title} = "Contents of ".$product->path;
+    $c->stash->{contents} = "<pre>$res</pre>";
+    $c->stash->{template} = 'plain.tt';
 }
 
 

Modified: hydra/trunk/src/lib/Hydra/Controller/Root.pm
==============================================================================
--- hydra/trunk/src/lib/Hydra/Controller/Root.pm        Tue Jan  4 12:35:06 
2011        (r25378)
+++ hydra/trunk/src/lib/Hydra/Controller/Root.pm        Tue Jan  4 12:50:59 
2011        (r25379)
@@ -145,6 +145,7 @@
         , uri_for('Build', 'view_nixlog', ["*"], "*")
         , uri_for('Build', 'view_log', ["*"], "*")
         , uri_for('Build', 'view_log', ["*"])
+        , uri_for('Build', 'download', ["*"], "*")
         , uri_for('Root', 'nar', [], "*")
         , uri_for('Root', 'status', [])
         , uri_for('Root', 'all', [])

Modified: hydra/trunk/src/lib/Hydra/Helper/CatalystUtils.pm
==============================================================================
--- hydra/trunk/src/lib/Hydra/Helper/CatalystUtils.pm   Tue Jan  4 12:35:06 
2011        (r25378)
+++ hydra/trunk/src/lib/Hydra/Helper/CatalystUtils.pm   Tue Jan  4 12:50:59 
2011        (r25379)
@@ -206,7 +206,7 @@
 
 
 # Security checking of filenames.
-Readonly::Scalar our $pathCompRE => "(?:[A-Za-z0-9-\+][A-Za-z0-9-\+\._]*)";
+Readonly::Scalar our $pathCompRE => "(?:[A-Za-z0-9-\+\.][A-Za-z0-9-\+\._]*)";
 Readonly::Scalar our $relPathRE  => "(?:$pathCompRE(?:/$pathCompRE)*)";
 Readonly::Scalar our $relNameRE  => "(?:[A-Za-z0-9-][A-Za-z0-9-\.]*)";
 Readonly::Scalar our $attrNameRE => "(?:[A-Za-z_][A-Za-z0-9_]*)";
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to