]> git.deb.at Git - deb/packages.git/blobdiff - bin/create_index_pages
Make language override URLs more robust
[deb/packages.git] / bin / create_index_pages
index 0766f78fe5a275ebc192f0fcfe2089520fe6dab0..3e9fc529f63ff74fe27dcc2590370e1e3c0c297c 100755 (executable)
@@ -97,7 +97,7 @@ sub close_file {
     print "closing $key\n";
 
     foreach my $lang (@LANGUAGES) {
-       print {$fh{$key}} "$s{begin}{$lang}\n";
+       print {$fh{$key}} "\n$s{begin}{$lang}\n";
        $template->page( 'index_foot',
                         { %{$lang_vars{$lang}},
                           %$vars },
@@ -146,8 +146,8 @@ sub close_txt_file {
 }
 
 
-print "write headers ...\n";
 foreach my $source (("", "source/")) {
+    print "write headers ...\n";
     foreach my $s (@SUITES) {
        mkdirp ( "$wwwdir/$source$s" );
        my %common_vars = ( suite => $s,
@@ -177,8 +177,52 @@ foreach my $source (("", "source/")) {
                                      name => $prio }});
        }
     }
+
+    if ($source) {
+       process_source_packages();
+    } else {
+       process_packages();
+    }
+
+    print "write footers ...\n";
+    foreach my $s (@SUITES) {
+       my %common_vars = ( suite => $s,
+                           is_source => $source );
+       my $page_base = "$source$s/";
+       close_file("$source$s", { %common_vars,
+                                 page_name => "${page_base}allpackages" },
+                  'allpackages');
+       close_txt_file("$source$s", { %common_vars,
+                                     page_name => "{$page_base}allpackages" },
+                      'allpackages');
+
+       foreach my $sec (keys %{$sections->{$s}}) {
+           close_file("$source$s/$sec",
+                      { %common_vars,
+                        page_name => "$page_base$sec/",
+                        category => { id => N_('Section'),
+                                      name => $sec }});
+       }
+       foreach my $ssec ((keys %{$subsections->{$s}}, 'virtual')) {
+           next if $ssec eq '-';
+           close_file("$source$s/$ssec",
+                      { %common_vars,
+                        page_name => "$page_base$ssec/",
+                        category => { id => N_('Subsection'),
+                                      name => $ssec }});
+       }
+       foreach my $prio (keys %{$priorities->{$s}}) {
+           next if $prio eq '-';
+           close_file("$source$s/$prio",
+                      { %common_vars,
+                        page_name => "$page_base$prio/",
+                        category => { id => N_('Priority'),
+                                      name => $prio }});
+       }
+    }
 }
 
+sub process_packages {
 
 print "processing package info ...\n";
 my $count = 0;
@@ -230,11 +274,13 @@ foreach my $pkg (@PACKAGES) {
                my %sdescs;
                my %trans_desc = split /\000|\001/, $trans_desc;
                while (my ($l, $d) = each %trans_desc) {
-                   $d =~ s/\n.*//os;
+                   # filter out non-po languages
+                   next unless exists $lang_vars{$l};
 
+                   $d =~ s/\n.*//os;
                    $sdescs{$l} = $d;
                }
-               $p{trans_desc} = \%sdescs;
+               $p{trans_desc} = \%sdescs if %sdescs;
            }
            $p{priority} = $entry->get_newest( 'priority' );
        }
@@ -304,8 +350,12 @@ foreach my $pkg (@PACKAGES) {
     }
 }
 
+}
+
+sub process_source_packages {
+
 print "collecting source package info ...\n";
-$count = 0;
+my $count = 0;
 foreach my $pkg (@SRC_PACKAGES) {
     warn "pkg=$pkg\n" if DEBUG;
     print "$count\n" unless ++$count % 1000;
@@ -366,36 +416,6 @@ foreach my $pkg (@SRC_PACKAGES) {
     }
 }
 
-
-print "write footers ...\n";
-foreach my $source (("", "source/")) {
-    foreach my $s (@SUITES) {
-       my %common_vars = ( suite => $s,
-                           is_source => $source );
-       close_file("$source$s", \%common_vars, 'allpackages');
-       close_txt_file("$source$s", \%common_vars, 'allpackages');
-
-       foreach my $sec (keys %{$sections->{$s}}) {
-           close_file("$source$s/$sec",
-                      { %common_vars,
-                        category => { id => N_('Section'),
-                                      name => $sec }});
-       }
-       foreach my $ssec ((keys %{$subsections->{$s}}, 'virtual')) {
-           next if $ssec eq '-';
-           close_file("$source$s/$ssec",
-                      { %common_vars,
-                        category => { id => N_('Subsection'),
-                                      name => $ssec }});
-       }
-       foreach my $prio (keys %{$priorities->{$s}}) {
-           next if $prio eq '-';
-           close_file("$source$s/$prio",
-                      { %common_vars,
-                        category => { id => N_('Priority'),
-                                      name => $prio }});
-       }
-    }
 }
 
 __END__