]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/DoIndex.pm
fix off-by-one after switching on the brain again
[deb/packages.git] / lib / Packages / DoIndex.pm
index 3129b0b9c7fb950cc000cf0803485e6a65951af8..6af0c3ab34bee37de557845e6a1f9f2a389dc8f9 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 
 use CGI qw( :cgi );
+use POSIX qw( strftime );
 use Exporter;
 
 use Deb::Versions;
@@ -11,7 +12,12 @@ use Packages::Config qw( $TOPDIR );
 use Packages::CGI;
 
 our @ISA = qw( Exporter );
-our @EXPORT = qw( do_index do_allpackages );
+our @EXPORT = qw( do_homepage do_index do_allpackages );
+
+sub do_homepage {
+    $_[1]->{suite} = [];
+    return send_file( 'index', @_ );
+}
 
 sub do_index {
     return send_file( 'index', @_ );
@@ -39,10 +45,13 @@ sub send_file {
                              "@{$opts->{suite}}" ) );
     }
 
+    if ($opts->{format} eq 'txt.gz') {
+       $opts->{po_lang} = 'en';
+    }
     my $wwwdir = "$TOPDIR/www";
     my $path = "";
     $path .= "source/" if $opts->{source};
-    $path .= "$opts->{suite}[0]/";
+    $path .= "$opts->{suite}[0]/" if @{$opts->{suite}};
     $path .= "$opts->{archive}[0]/" if @{$opts->{archive}} == 1;
     $path .= "$opts->{subsection}[0]/" if @{$opts->{subsection}};
     $path .= "$opts->{priority}[0]/" if @{$opts->{priority}};
@@ -57,7 +66,9 @@ sub send_file {
            $headers{'-content-encoding'} = $encoding{$opts->{format}} if exists $encoding{$opts->{format}};
            my ($size,$mtime) = (stat("$wwwdir/$path"))[7,9];
            $headers{'-content-length'} = $size;
-           $headers{'-last-modified'} = gmtime($mtime);
+           $headers{'-vary'} = 'negotiate,accept-language';
+           $headers{'-last-modified'} = strftime("%a, %d %b %Y %T %z", localtime($mtime));
+           $headers{'-expires'} = strftime("%a, %d %b %Y %T %z", localtime($mtime+(12*3600)));
            print header( %headers );
 
            binmode INDEX;