summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Fredric <kentfredric@gmail.com>2012-06-09 05:13:41 +1200
committerKent Fredric <kentfredric@gmail.com>2012-06-09 05:13:41 +1200
commit406468434765876b6f42bb7bcdc6c883965b5b3b (patch)
tree8f59b7c47726f97911371b282071aa3356c5e14e /scripts
parent[profiles] remove dev-lang/ from categories as its gone from tree again (diff)
downloadperl-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-xscripts/aggregate_tree.pl59
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 ");
}
);