X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=bin%2Fcreate_index_pages;h=66d78386f7cc37073f7237cfd88b877035b2abe4;hp=8b1f6577550dc0b732123b648715d852c3e0dd94;hb=HEAD;hpb=6daa6764bc7c3efdcc589eac9f51f76f88646870 diff --git a/bin/create_index_pages b/bin/create_index_pages index 8b1f657..66d7838 100755 --- a/bin/create_index_pages +++ b/bin/create_index_pages @@ -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__