X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=bin%2Fcreate_index_pages;h=11849bce7a745fff257db4d0520a00fa1fabda27;hb=3d5a2408c84b3197cfb003ef2c3204d9c280b481;hp=4161a7654761acd9bce6d932948eaf455f5e6079;hpb=bcfcaa38f5df98ccff82e7ec1b9473b92b850c17;p=deb%2Fpackages.git
diff --git a/bin/create_index_pages b/bin/create_index_pages
index 4161a76..11849bc 100755
--- a/bin/create_index_pages
+++ b/bin/create_index_pages
@@ -110,6 +110,7 @@ my %sections_descs = (
my (%pages);
+print "opening files ...\n";
foreach my $s (@SUITES) {
foreach my $a (@ARCHIVES) {
next if $a eq 'security';
@@ -149,7 +150,7 @@ foreach my $s (@SUITES) {
title( $title ), '
';
}
my $i = 0; my $num_sections = keys %{$subsections->{$s}{$a}};
- foreach my $ssec (keys %{$subsections->{$s}{$a}}) {
+ 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"
@@ -186,6 +187,7 @@ foreach my $s (@SUITES) {
}
}
+print "writing package info ...\n";
while (my ($pkg, $data) = each %packages) {
my %pkg;
foreach (split /\000/o, $data) {
@@ -195,17 +197,30 @@ while (my ($pkg, $data) = each %packages) {
$key = "$data[1]/$data[0]";
}
$pkg{$key} ||= new Packages::Page( $pkg );
- $pkg{$key}->merge_package( { package => $pkg,
- archive => $data[0],
- suite => $data[1],
- architecture => $data[2],
- section => $data[3],
- subsection => $data[4],
- priority => $data[5],
- version => $data[6],
- description => $data[7] } );
+ if ($data[2] ne 'virtual') {
+ $pkg{$key}->merge_package( { package => $pkg,
+ archive => $data[0],
+ suite => $data[1],
+ architecture => $data[2],
+ section => $data[3],
+ subsection => $data[4],
+ priority => $data[5],
+ version => $data[6],
+ description => $data[7] } );
+ } else {
+ $pkg{$key}->add_provided_by([split /\s+/, $data[7]]);
+ }
}
while (my ($key, $entry) = each %pkg) {
+ if (my $provided_by = $entry->{provided_by}) {
+ my $str = "- $pkg ".
+ "
\n - virtual package provided by ".
+ join( ', ',map { "$_" } @$provided_by)."
\n";
+ my $txt_str = "$pkg\tvirtual package provided by ".join(', ', @$provided_by)."\n";
+ print {$pages{$key}{virtual}{fh}} $str
+ or die "couldn't write to output file: $!";
+ }
+ next if $entry->is_virtual;
my (undef, $v_str) = $entry->get_version_string;
my $subsection = $entry->get_newest( 'subsection' );
my $section = $entry->get_newest( 'section' );
@@ -241,6 +256,7 @@ while (my ($pkg, $data) = each %packages) {
}
}
+print "closing files ...\n";
foreach my $s (@SUITES) {
foreach my $a (@ARCHIVES) {
next if $a eq 'security';
@@ -268,7 +284,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}{$a}}) {
+ 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