Gentoo Archives: gentoo-commits

From: Kent Fredric <kentfredric@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/perl-overlay:master commit in: scripts/
Date: Wed, 01 May 2013 23:03:34
Message-Id: 1367448962.8b13e9caaaf76afbf835140cabadcdd66bde4077.kent@gentoo
1 commit: 8b13e9caaaf76afbf835140cabadcdd66bde4077
2 Author: Kent Fredric <kentfredric <AT> gmail <DOT> com>
3 AuthorDate: Wed May 1 22:56:02 2013 +0000
4 Commit: Kent Fredric <kentfredric <AT> gmail <DOT> com>
5 CommitDate: Wed May 1 22:56:02 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=8b13e9ca
7
8 [scripts] rework aggregate_tree.pl to use Gentoo::Perl::Distmap::FromOverlay
9
10 ---
11 scripts/aggregate_tree.pl | 85 +++++++++++----------------------------------
12 1 files changed, 21 insertions(+), 64 deletions(-)
13
14 diff --git a/scripts/aggregate_tree.pl b/scripts/aggregate_tree.pl
15 index 16afe79..52b18f9 100755
16 --- a/scripts/aggregate_tree.pl
17 +++ b/scripts/aggregate_tree.pl
18 @@ -16,14 +16,15 @@ use Data::Dump qw( pp );
19 use Gentoo::Overlay;
20 use Gentoo::Perl::Distmap;
21 use Gentoo::Perl::Distmap::RecordSet;
22 +use Gentoo::Perl::Distmap::FromOverlay;
23 +
24 # FILENAME: aggregate_tree.pl
25 # CREATED: 29/02/12 07:37:54 by Kent Fredric (kentnl) <kentfredric@×××××.com>
26 # ABSTRACT: Connect all the cpan id's from the metadata.xml
27
28 use XML::Smart;
29
30 -my ( $env, $cat );
31 -my $dm = Gentoo::Perl::Distmap->new();
32 +my ( $env, $cat , $dm );
33
34 main();
35
36 @@ -46,11 +47,26 @@ sub main {
37 }
38
39 my $dest = open_output( $opts->long_opts->{output} );
40 + my $mapper = Gentoo::Perl::Distmap::FromOverlay->new( overlay => $tree );
41
42 $|++;
43 - $tree->iterate(
44 - 'packages' => \&handle_package
45 - );
46 + local *Gentoo::Perl::Distmap::FromOverlay::_on_enter_category = sub {
47 + print "\r" . $_[1] . ' ';
48 + print "\r" . $_[1] . ' ';
49 + };
50 + my @symbols = ( '/' , '-', '\\', '|' );
51 + local *Gentoo::Perl::Distmap::FromOverlay::_on_enter_package = sub {
52 + my $next_symbol = shift @symbols;
53 + push @symbols, $next_symbol;
54 + print $next_symbol . "\b";
55 + };
56 +
57 + local *Gentoo::Perl::Distmap::FromOverlay::_on_enter_ebuild = sub {
58 + print ".> \b\b" ;
59 + };
60 +
61 +
62 + $dm = $mapper->distmap;
63
64 $dest->print( make_format( $opts->long_opts->{format} ) );
65
66 @@ -92,65 +108,6 @@ sub make_format_distlist {
67 return join qq{\n}, $dm->mapped_dists;
68 }
69
70 -sub handle_package {
71 - my ( $self, $c ) = @_;
72 - my $CP = $c->{category_name} . '/' . $c->{package_name};
73 - my $xmlfile = $c->{package}->path->file('metadata.xml');
74 - if ( not -e $xmlfile ) {
75 - warn "\e[31mNo metadata.xml for $CP\e[0m\n";
76 - return;
77 - }
78 - if ( not $cat or $c->{category_name} ne $cat ) {
79 - *STDERR->print( "\nProcessing " . $c->{category_name} . " :" );
80 - $cat = $c->{category_name};
81 - }
82 - *STDERR->print(".");
83 - my $XML = XML::Smart->new( $xmlfile->absolute()->stringify() );
84 - if ( not exists $XML->{pkgmetadata} ) {
85 - warn "\e[31m<pkgmetadata> missing in $xmlfile\e[0m\n";
86 - return;
87 - }
88 - if ( not exists $XML->{pkgmetadata}->{upstream} ) {
89 -
90 - # warn "<pkgmetadata>/<upstream> missing in $xmlfile\n";
91 - return;
92 - }
93 - if ( not exists $XML->{pkgmetadata}->{upstream}->{'remote-id'} ) {
94 -
95 - # warn "<pkgmetadata>/<upstream>/<remote-id> missing in $xmlfile\n";
96 - return;
97 - }
98 - for my $remote ( @{ $XML->{pkgmetadata}->{upstream}->{'remote-id'} } ) {
99 -
100 - next if not exists $remote->{type};
101 - next unless $remote->{type} eq 'cpan';
102 -
103 - my $upstream = $remote->content();
104 -
105 - my $record = {
106 - category => $c->{category_name},
107 - package => $c->{package_name},
108 - repository => $c->{overlay_name},
109 - distribution => $upstream,
110 - };
111 - $c->{package}->iterate(
112 - ebuilds => sub {
113 - my ( $self, $d ) = @_;
114 - my $version = $d->{ebuild_name};
115 - my $p = $c->{package_name};
116 - $version =~ s/\.ebuild$//;
117 - $version =~ s/^\Q${p}\E-//;
118 - $dm->add_version(
119 - %{$record},
120 - version => $version,
121 - );
122 - }
123 - );
124 -
125 - *STDERR->print("\e[32m $CP -> $upstream\e[0m ");
126 - }
127 -
128 -}
129 0;
130
131 __DATA__