Correct filename in HTTP response.
Zachary Stevens [Fri, 20 Nov 2009 00:32:35 +0000 (00:32 +0000)]
lib/Gitalist/Controller/Root.pm
lib/Gitalist/Git/Project.pm

index 3cdf2fc..78a0661 100644 (file)
@@ -461,15 +461,14 @@ sub snapshot : Local {
     my $format = $c->req->param('sf') || 'tgz';
     die unless $format;
     my $sha1 = $c->req->param('h') || $self->_get_object($c)->sha1;
+    my @snap = $c->stash->{Project}->snapshot(
+        sha1 => $sha1,
+        format => $format
+    );
     $c->response->status(200);
     $c->response->headers->header( 'Content-Disposition' =>
-                                       'attachment; filename=export.tgz');
-    $c->response->body(
-        $c->stash->{Project}->snapshot(
-            sha1 => $sha1,
-            format => $format
-        )
-    );
+                                       "attachment; filename=$snap[0]");
+    $c->response->body($snap[1]);
 }
 
 =head2 auto
index d4a04aa..f9f81b8 100644 (file)
@@ -265,7 +265,7 @@ method snapshot (NonEmptySimpleStr :$sha1,
 
 
     my @cmd = ('archive', "--format=$format", "--prefix=$name/", $sha1);
-    return $self->run_cmd_fh(@cmd);
+    return ($filename, $self->run_cmd_fh(@cmd));
     # TODO - support compressed archives
 }