X-Git-Url: https://git.deb.at/?a=blobdiff_plain;ds=sidebyside;f=bin%2Fcreate_index_pages;h=2d6e47285b7d0145e950a656addbc7c1a6fabec9;hb=99974af07fe1aadba839a7216ebcbf3528cb1e00;hp=1cce8f17921222ff1a8842fcc4b58bf8addbd4e7;hpb=a3e6aa1e34000d0a7faa1773bd6bc32c32cfa625;p=deb%2Fpackages.git diff --git a/bin/create_index_pages b/bin/create_index_pages index 1cce8f1..2d6e472 100755 --- a/bin/create_index_pages +++ b/bin/create_index_pages @@ -9,6 +9,7 @@ use DB_File; use Storable; use HTML::Entities; use Locale::gettext; +use Compress::Zlib; use lib './lib'; @@ -63,8 +64,8 @@ foreach my $s (@SUITES) { desc => encode_entities( $index_title, '"' ), lang => $lang ), title( $index_title ), '
'; - my $i = 0; my $num_sections = keys %{$subsections->{$s}{'us'}}; - foreach my $ssec ((keys %{$subsections->{$s}{'us'}}, 'virtual')) { + my $i = 0; my $num_sections = keys %{$subsections->{$s}}; + foreach my $ssec ((keys %{$subsections->{$s}}, 'virtual')) { next if $ssec eq '-'; if ($sections_descs{$ssec}) { print {$pages{$key}{$lang}{index}{fh}} "
".dgettext( 'sections', $sections_descs{$ssec}[0] )."
".dgettext( 'sections', $sections_descs{$ssec}[1] )."
\n"; @@ -77,7 +78,7 @@ foreach my $s (@SUITES) { print {$pages{$key}{$lang}{index}{fh}} '
', "

". - _g( "All packages" ) ."
(". + _g( "All packages" ) ."
(". _g( "compact compressed textlist" ).")

\n"; print {$pages{$key}{$lang}{index}{fh}} trailer( "../", 'index', $lang, @LANGUAGES ); close $pages{$key}{$lang}{index}{fh} or @@ -95,6 +96,9 @@ foreach my $s (@SUITES) { mkpath ( "$wwwdir/$key" ); open $pages{$key}{fh}, '>', "$wwwdir/$key/allpackages.en.html.new" or die "can't open index file for output: $!"; + $pages{$key}{textgz} = gzopen("$wwwdir/$key/allpackages.en.txt.gz.new", + 'wb9') + or die "can't open text index file for output: $!"; my $title = sprintf( _g( "Software Packages in \"%s\"" ), $key ); @@ -103,8 +107,13 @@ foreach my $s (@SUITES) { desc => encode_entities( $title, '"' ), lang => 'en' ), title( $title ), '
'; + my $title_txt = sprintf( _g( "All Debian Packages in \"%s\"" ), + $key )."\n\n"; + $title_txt .= _g( "Last Modified: " ).gmtime()."\n". + sprintf(_g( "Copyright (C) 1997-%d SPI;\nSee for the license terms."), (gmtime)[5]+1900 )."\n\n"; + $pages{$key}{textgz}->gzwrite($title_txt); - foreach my $sec (keys %{$sections->{$s}{'us'}}) { + foreach my $sec (keys %{$sections->{$s}}) { mkpath ( "$wwwdir/$key/$sec" ); open $pages{$key}{$sec}{fh}, '>', "$wwwdir/$key/$sec/index.en.html.new" or die "can't open index file for output: $!"; @@ -116,7 +125,7 @@ foreach my $s (@SUITES) { lang => 'en' ), title( $title ), '
'; } - foreach my $ssec ((keys %{$subsections->{$s}{'us'}}, 'virtual')) { + foreach my $ssec ((keys %{$subsections->{$s}}, 'virtual')) { next if $ssec eq '-'; mkpath ( "$wwwdir/$key/$ssec" ); open $pages{$key}{$ssec}{fh}, '>', "$wwwdir/$key/$ssec/index.en.html.new" @@ -129,7 +138,7 @@ foreach my $s (@SUITES) { lang => 'en' ), title( $title ), '
'; } - foreach my $prio (keys %{$priorities->{$s}{'us'}}) { + foreach my $prio (keys %{$priorities->{$s}}) { next if $prio eq '-'; mkpath ( "$wwwdir/$key/$prio" ); open $pages{$key}{$prio}{fh}, '>', "$wwwdir/$key/$prio/index.en.html.new" @@ -149,7 +158,7 @@ while (my ($pkg, $data) = each %packages) { my (%pkg,%virt); my ($virt, $p_data) = split /\000/o, $data, 2; %virt = split /\01/o, $virt; - foreach (split /\000/o, $p_data) { + foreach (split /\000/o, $p_data||'') { my @data = split ( /\s/o, $_, 8 ); $pkg{$data[1]} ||= new Packages::Page( $pkg ); $pkg{$data[1]}->merge_package( { package => $pkg, @@ -200,11 +209,11 @@ while (my ($pkg, $data) = each %packages) { $txt_str .= " $short_desc_txt\n"; print {$pages{$key}{fh}} $str or die "couldn't write to output file: $!"; + $pages{$key}{textgz}->gzwrite($txt_str) + or die "couldn't write to output file: ".$pages{$key}{textgz}->gzerror; print {$pages{$key}{$section}{fh}} $str or die "couldn't write to output file: $!"; if ($subsection ne '-') { - print STDERR "pages{$key}{$subsection}{fh}\n" - unless $pages{$key}{$subsection}{fh}; print {$pages{$key}{$subsection}{fh}} $str or die "couldn't write to output file: $!"; } @@ -219,10 +228,14 @@ print "closing files ...\n"; foreach my $s (@SUITES) { my $key = $s; print {$pages{$key}{fh}} '
', trailer( "../" ); + ($pages{$key}{textgz}->gzclose == Z_OK) or + warn "can't close text index file $wwwdir/$key/allpackages.en.txt.gz.new: ".$pages{$key}{textgz}->gzerror; close $pages{$key}{fh} or warn "can't close index file $wwwdir/$key/allpackages.en.html.new: $!"; rename( "$wwwdir/$key/allpackages.en.html.new", "$wwwdir/$key/allpackages.en.html" ); + rename( "$wwwdir/$key/allpackages.en.txt.gz.new", + "$wwwdir/$key/allpackages.en.txt.gz" ); foreach my $sec (keys %{$sections->{$s}{'us'}}) { print {$pages{$key}{$sec}{fh}} '
', trailer( "../../" ); close $pages{$key}{$sec}{fh} or @@ -230,7 +243,7 @@ foreach my $s (@SUITES) { rename( "$wwwdir/$key/$sec/index.en.html.new", "$wwwdir/$key/$sec/index.en.html" ); } - foreach my $ssec ((keys %{$subsections->{$s}{'us'}}, 'virtual')) { + foreach my $ssec ((keys %{$subsections->{$s}}, 'virtual')) { next if $ssec eq '-'; print {$pages{$key}{$ssec}{fh}} '
', trailer( "../../" ); close $pages{$key}{$ssec}{fh} or @@ -238,7 +251,7 @@ foreach my $s (@SUITES) { rename( "$wwwdir/$key/$ssec/index.en.html.new", "$wwwdir/$key/$ssec/index.en.html" ); } - foreach my $prio (keys %{$priorities->{$s}{'us'}}) { + foreach my $prio (keys %{$priorities->{$s}}) { next if $prio eq '-'; print {$pages{$key}{$prio}{fh}} '', trailer( "../../" ); close $pages{$key}{$prio}{fh} or