]> git.deb.at Git - deb/packages.git/blobdiff - bin/create_index_pages
Move patch-tracking.d.net to patch-tracker.d.o and update names (Closes: #545262)
[deb/packages.git] / bin / create_index_pages
index 8b1f6577550dc0b732123b648715d852c3e0dd94..66d78386f7cc37073f7237cfd88b877035b2abe4 100755 (executable)
@@ -10,6 +10,7 @@ use Storable;
 use HTML::Entities;
 use URI::Escape;
 use Compress::Zlib;
+use IO::Handle;
 
 use lib './lib';
 
@@ -75,6 +76,10 @@ sub open_file {
 
     print "opening $key\n";
     mkdirp ( "$wwwdir/$key" );
+    if ($fh{$key}) {
+       warn "filehandle for $key already open\n";
+       return;
+    }
     open($fh{$key}, '>',
         "$wwwdir/$key/$file.slices.new")
        or die "Cannot open file $wwwdir/$key/$file.slices.new: $!";
@@ -95,9 +100,13 @@ sub close_file {
     $file ||= 'index';
 
     print "closing $key\n";
+    unless ($fh{$key}->opened()) {
+       warn "filehandle for $key already closed\n";
+       return;
+    }
 
     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 +155,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 +186,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;
@@ -306,8 +359,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;
@@ -368,36 +425,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__