X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=bin%2Fcreate_index_pages;h=55e9f47b68a64dd78850d18bc76ca664dd83c7ce;hb=552e68978a99d2d4e05d80aea0cc5308b370d10e;hp=d9dc8b43b60bc000a9380631941bffabd23b53a8;hpb=56d4b3ed57e20359e5ea46feabb850cf4a94caf2;p=deb%2Fpackages.git diff --git a/bin/create_index_pages b/bin/create_index_pages index d9dc8b4..55e9f47 100755 --- a/bin/create_index_pages +++ b/bin/create_index_pages @@ -46,125 +46,113 @@ my (%pages); print "write suite index files ...\n"; foreach my $s (@SUITES) { - foreach my $a (@ARCHIVES) { - next if $a eq 'security'; - next if $a eq 'non-US'; - my $key = ($a eq 'us') ? $s : "$s/$a"; - my $root = ($a eq 'us') ? '' : '../'; - mkpath ( "$wwwdir/$key" ); - foreach my $lang (@LANGUAGES) { - my $locale = get_locale( $lang ); - setlocale ( LC_ALL, $locale ) or do { - warn "couldn't set locale ($lang/$locale)\n"; - next; - }; - open $pages{$key}{$lang}{index}{fh}, '>', "$wwwdir/$key/index.$lang.html.new" - or die "can't open index file for output: $!"; - my $index_title = sprintf( _g( "List of sections in \"%s\"" ), - $s ); - print {$pages{$key}{$lang}{index}{fh}} header( title => $index_title, - title_keywords => "debian, $s", - desc => encode_entities( $index_title, '"' ), - lang => $lang ), - title( $index_title ), '
'; - my $i = 0; my $num_sections = keys %{$subsections->{$s}{$a}}; - foreach my $ssec ((keys %{$subsections->{$s}{$a}}, '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"; - $i++; - if ($i eq ceil($num_sections/2)) { - print {$pages{$key}{$lang}{index}{fh}} "
\n
\n
\n
\n"; - } + my $key = $s; + mkpath ( "$wwwdir/$key" ); + foreach my $lang (@LANGUAGES) { + my $locale = get_locale( $lang ); + setlocale ( LC_ALL, $locale ) or do { + warn "couldn't set locale ($lang/$locale)\n"; + next; + }; + open $pages{$key}{$lang}{index}{fh}, '>', "$wwwdir/$key/index.$lang.html.new" + or die "can't open index file for output: $!"; + my $index_title = sprintf( _g( "List of sections in \"%s\"" ), + $key ); + print {$pages{$key}{$lang}{index}{fh}} header( title => $index_title, + title_keywords => "debian, $s", + desc => encode_entities( $index_title, '"' ), + lang => $lang ), + title( $index_title ), '
'; + 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"; + $i++; + if ($i eq ceil($num_sections/2)) { + print {$pages{$key}{$lang}{index}{fh}} "
\n
\n
\n
\n"; } } - - print {$pages{$key}{$lang}{index}{fh}} '
', - "

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

\n"; - print {$pages{$key}{$lang}{index}{fh}} trailer( "$root../", 'index', $lang, @LANGUAGES ); - close $pages{$key}{$lang}{index}{fh} or - warn "can't close index file $wwwdir/$key/index.$lang.html.new: $!"; - rename( "$wwwdir/$key/index.$lang.html.new", - "$wwwdir/$key/index.$lang.html" ); - } + + print {$pages{$key}{$lang}{index}{fh}} '
', + "

". + _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 + warn "can't close index file $wwwdir/$key/index.$lang.html.new: $!"; + rename( "$wwwdir/$key/index.$lang.html.new", + "$wwwdir/$key/index.$lang.html" ); + } } setlocale( LC_ALL, 'C' ) or die "couldn't reset locale"; print "opening files ...\n"; foreach my $s (@SUITES) { - foreach my $a (@ARCHIVES) { - next if $a eq 'security'; - next if $a eq 'non-US'; - my $key = ($a eq 'us') ? $s : "$s/$a"; - mkpath ( "$wwwdir/$key" ); - open $pages{$key}{fh}, '>', "$wwwdir/$key/allpackages.en.html.new" + my $key = $s; + mkpath ( "$wwwdir/$key" ); + open $pages{$key}{fh}, '>', "$wwwdir/$key/allpackages.en.html.new" + or die "can't open index file for output: $!"; + + my $title = sprintf( _g( "Software Packages in \"%s\"" ), + $key ); + print {$pages{$key}{fh}} header( title => $title, + title_keywords => "debian, $s", + desc => encode_entities( $title, '"' ), + lang => 'en' ), + title( $title ), '
'; + + 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: $!"; - - my $title = sprintf( _g( "Software Packages in \"%s\"" ), - $s ); - print {$pages{$key}{fh}} header( title => $title, - title_keywords => "debian, $s", - desc => encode_entities( $title, '"' ), - lang => 'en' ), + $title = sprintf( _g( "Software Packages in \"%s\", section %s" ), + $key, $sec ); + print {$pages{$key}{$sec}{fh}} header( title => $title, + title_keywords => "debian, $s, $sec", + desc => encode_entities( $title, '"' ), + lang => 'en' ), + title( $title ), '
'; + } + 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" + or die "can't open index file for output: $!"; + $title = sprintf( _g( "Software Packages in \"%s\", subsection %s" ), + $key, $ssec ); + print {$pages{$key}{$ssec}{fh}} header( title => $title, + title_keywords => "debian, $s, $ssec", + desc => encode_entities( $title, '"' ), + lang => 'en' ), + title( $title ), '
'; + } + 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" + or die "can't open index file for output: $!"; + $title = sprintf( _g( "Software Packages in \"%s\", priority %s" ), + $key, $prio ); + print {$pages{$key}{$prio}{fh}} header( title => $title, + title_keywords => "debian, $s, $prio", + desc => encode_entities( $title, '"' ), + lang => 'en' ), title( $title ), '
'; - - foreach my $sec (keys %{$sections->{$s}{$a}}) { - 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: $!"; - $title = sprintf( _g( "Software Packages in \"%s\", section %s" ), - $s, $sec ); - print {$pages{$key}{$sec}{fh}} header( title => $title, - title_keywords => "debian, $s, $sec", - desc => encode_entities( $title, '"' ), - lang => 'en' ), - title( $title ), '
'; - } - foreach my $ssec ((keys %{$subsections->{$s}{$a}}, 'virtual')) { - next if $ssec eq '-'; - mkpath ( "$wwwdir/$key/$ssec" ); - open $pages{$key}{$ssec}{fh}, '>', "$wwwdir/$key/$ssec/index.en.html.new" - or die "can't open index file for output: $!"; - $title = sprintf( _g( "Software Packages in \"%s\", subsection %s" ), - $s, $ssec ); - print {$pages{$key}{$ssec}{fh}} header( title => $title, - title_keywords => "debian, $s, $ssec", - desc => encode_entities( $title, '"' ), - lang => 'en' ), - title( $title ), '
'; - } - foreach my $prio (keys %{$priorities->{$s}{$a}}) { - next if $prio eq '-'; - mkpath ( "$wwwdir/$key/$prio" ); - open $pages{$key}{$prio}{fh}, '>', "$wwwdir/$key/$prio/index.en.html.new" - or die "can't open index file for output: $!"; - $title = sprintf( _g( "Software Packages in \"%s\", priority %s" ), - $s, $prio ); - print {$pages{$key}{$prio}{fh}} header( title => $title, - title_keywords => "debian, $s, $prio", - desc => encode_entities( $title, '"' ), - lang => 'en' ), - title( $title ), '
'; - } } } print "writing package info ...\n"; while (my ($pkg, $data) = each %packages) { - my %pkg; - foreach (split /\000/o, $data) { + my (%pkg,%virt); + my ($virt, $p_data) = split /\000/o, $data, 2; + %virt = split /\01/o, $virt; + foreach (split /\000/o, $p_data) { my @data = split ( /\s/o, $_, 8 ); - my $key = $data[1]; - if ($data[0] !~ /^(?:us|security|non-US)$/o) { - $key = "$data[1]/$data[0]"; - } - $pkg{$key} ||= new Packages::Page( $pkg ); - if ($data[2] ne 'virtual') { - $pkg{$key}->merge_package( { package => $pkg, + $pkg{$data[1]} ||= new Packages::Page( $pkg ); + $pkg{$data[1]}->merge_package( { package => $pkg, archive => $data[0], suite => $data[1], architecture => $data[2], @@ -173,10 +161,13 @@ while (my ($pkg, $data) = each %packages) { priority => $data[5], version => $data[6], description => $data[7] } ); - } else { - $pkg{$key}->add_provided_by([split /\s+/, $data[7]]); - } } + foreach (keys %virt) { + next if $_ eq '-'; + $pkg{$_} ||= new Packages::Page( $pkg ); + $pkg{$_}->add_provided_by([split /\s+/, $virt{$_}]); + } + while (my ($key, $entry) = each %pkg) { if (my $provided_by = $entry->{provided_by}) { my $str = "
$pkg ". @@ -194,7 +185,7 @@ while (my ($pkg, $data) = each %packages) { my $short_desc_txt = $entry->get_newest( 'description' ); my $short_desc = encode_entities( $short_desc_txt, "<>&\"" ); my $priority = $entry->get_newest( 'priority' ); - + my $str = "
$pkg ($v_str) "; my $txt_str = "$pkg ($v_str)"; if ($section ne 'main') { @@ -206,7 +197,7 @@ while (my ($pkg, $data) = each %packages) { $txt_str .= " [$archive]"; } $str .= "
\n
$short_desc
\n"; - $txt_str .= " $short_desc_txt\n"; + $txt_str .= " $short_desc_txt\n"; print {$pages{$key}{fh}} $str or die "couldn't write to output file: $!"; print {$pages{$key}{$section}{fh}} $str @@ -224,38 +215,33 @@ while (my ($pkg, $data) = each %packages) { print "closing files ...\n"; foreach my $s (@SUITES) { - foreach my $a (@ARCHIVES) { - next if $a eq 'security'; - next if $a eq 'non-US'; - my $key = ($a eq 'us') ? $s : "$s/$a"; - my $root = ($a eq 'us') ? '' : '../'; - print {$pages{$key}{fh}} '
', trailer( "$root../" ); - 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" ); - foreach my $sec (keys %{$sections->{$s}{$a}}) { - print {$pages{$key}{$sec}{fh}} '
', trailer( "$root../../" ); - close $pages{$key}{$sec}{fh} or - warn "can't close index file $wwwdir/$key/$sec/index.en.html.new: $!"; - rename( "$wwwdir/$key/$sec/index.en.html.new", - "$wwwdir/$key/$sec/index.en.html" ); - } - foreach my $ssec ((keys %{$subsections->{$s}{$a}}, 'virtual')) { - next if $ssec eq '-'; - print {$pages{$key}{$ssec}{fh}} '
', trailer( "$root../../" ); - close $pages{$key}{$ssec}{fh} or - warn "can't close index file $wwwdir/$key/$ssec/index.en.html.new: $!"; - rename( "$wwwdir/$key/$ssec/index.en.html.new", - "$wwwdir/$key/$ssec/index.en.html" ); - } - foreach my $prio (keys %{$priorities->{$s}{$a}}) { - next if $prio eq '-'; - print {$pages{$key}{$prio}{fh}} '
', trailer( "$root../../" ); - close $pages{$key}{$prio}{fh} or - warn "can't close index file $wwwdir/$key/$prio/index.en.html.new: $!"; - rename( "$wwwdir/$key/$prio/index.en.html.new", - "$wwwdir/$key/$prio/index.en.html" ); - } + my $key = $s; + print {$pages{$key}{fh}} '
', trailer( "../" ); + 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" ); + foreach my $sec (keys %{$sections->{$s}{'us'}}) { + print {$pages{$key}{$sec}{fh}} '
', trailer( "../../" ); + close $pages{$key}{$sec}{fh} or + warn "can't close index file $wwwdir/$key/$sec/index.en.html.new: $!"; + rename( "$wwwdir/$key/$sec/index.en.html.new", + "$wwwdir/$key/$sec/index.en.html" ); + } + foreach my $ssec ((keys %{$subsections->{$s}}, 'virtual')) { + next if $ssec eq '-'; + print {$pages{$key}{$ssec}{fh}} '
', trailer( "../../" ); + close $pages{$key}{$ssec}{fh} or + warn "can't close index file $wwwdir/$key/$ssec/index.en.html.new: $!"; + rename( "$wwwdir/$key/$ssec/index.en.html.new", + "$wwwdir/$key/$ssec/index.en.html" ); + } + foreach my $prio (keys %{$priorities->{$s}}) { + next if $prio eq '-'; + print {$pages{$key}{$prio}{fh}} '', trailer( "../../" ); + close $pages{$key}{$prio}{fh} or + warn "can't close index file $wwwdir/$key/$prio/index.en.html.new: $!"; + rename( "$wwwdir/$key/$prio/index.en.html.new", + "$wwwdir/$key/$prio/index.en.html" ); } }