diff options
author | Kent Fredric <kentfredric@gmail.com> | 2012-06-09 05:13:41 +1200 |
---|---|---|
committer | Kent Fredric <kentfredric@gmail.com> | 2012-06-09 05:13:41 +1200 |
commit | 406468434765876b6f42bb7bcdc6c883965b5b3b (patch) | |
tree | 8f59b7c47726f97911371b282071aa3356c5e14e /scripts | |
parent | [profiles] remove dev-lang/ from categories as its gone from tree again (diff) | |
download | perl-overlay-406468434765876b6f42bb7bcdc6c883965b5b3b.tar.gz perl-overlay-406468434765876b6f42bb7bcdc6c883965b5b3b.tar.bz2 perl-overlay-406468434765876b6f42bb7bcdc6c883965b5b3b.zip |
[scripts/aggregate_tree.pl] add code to handle >1 remote_id field being declared
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/aggregate_tree.pl | 59 |
1 files changed, 28 insertions, 31 deletions
diff --git a/scripts/aggregate_tree.pl b/scripts/aggregate_tree.pl index a719a2679..f8f797ead 100755 --- a/scripts/aggregate_tree.pl +++ b/scripts/aggregate_tree.pl @@ -83,38 +83,35 @@ $overlay->iterate( # warn "<pkgmetadata>/<upstream>/<remote-id> missing in $xmlfile\n"; return; } - if ( not exists $XML->{pkgmetadata}->{upstream}->{'remote-id'}->{type} ) { - - # warn "remote type not specified for $CP"; - return; - } - if ( not $XML->{pkgmetadata}->{upstream}->{'remote-id'}->{type} eq 'cpan' ) { - - # warn "$CP: Not a CPAN remote: " . $XML->{pkgmetadata}->{upstream}->{'remote-id'}->{type} ; - return; - } - my $upstream = $XML->{pkgmetadata}->{upstream}->{'remote-id'}->content(); - if ( not defined $packages->{$upstream} ) { - $packages->{$upstream} = []; + for my $remote ( @{ $XML->{pkgmetadata}->{upstream}->{'remote-id'} } ) { + + next if not exists $remote->{type}; + next unless $remote->{type} eq 'cpan'; + + my $upstream = $remote->content(); + + if ( not defined $packages->{$upstream} ) { + $packages->{$upstream} = []; + } + my $versions = []; + my $record = { + category => $c->{category_name}, + package => $c->{package_name}, + repository => $overlay_name, + versions_gentoo => $versions, + }; + $c->{package}->iterate( ebuilds => sub { + my ( $self, $d ) = @_; + my $version = $d->{ebuild_name}; + my $p = $c->{package_name}; + $version =~ s/\.ebuild$//; + $version =~ s/^\Q${p}\E-//; + push @{$versions}, $version; + }); + push @{ $packages->{$upstream} }, $record; + + *STDERR->print("\e[32m $CP -> $upstream\e[0m "); } - my $versions = []; - my $record = { - category => $c->{category_name}, - package => $c->{package_name}, - repository => $overlay_name, - versions_gentoo => $versions, - }; - $c->{package}->iterate( ebuilds => sub { - my ( $self, $d ) = @_; - my $version = $d->{ebuild_name}; - my $p = $c->{package_name}; - $version =~ s/\.ebuild$//; - $version =~ s/^\Q${p}\E-//; - push @{$versions}, $version; - }); - push @{ $packages->{$upstream} }, $record; - - *STDERR->print("\e[32m $CP -> $upstream\e[0m "); } ); |