1 |
commit: d38f144656ae78ed3d3d0103ad3436de14b89113 |
2 |
Author: Kent Fredric <kentfredric <AT> gmail <DOT> com> |
3 |
AuthorDate: Mon Oct 31 02:35:57 2011 +0000 |
4 |
Commit: Kent Fredric <kentfredric <AT> gmail <DOT> com> |
5 |
CommitDate: Mon Oct 31 02:45:48 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=d38f1446 |
7 |
|
8 |
Ebuild Output target |
9 |
|
10 |
--- |
11 |
scripts/gen_ebuild.pl | 191 +++++++++++++++++++++++++++++ |
12 |
scripts/lib/dep/handler/bashcode.pm | 80 ++++++++++++ |
13 |
scripts/lib/deptools.pm | 4 +- |
14 |
scripts/pvlist.pl | 228 +++++++++++++++++++++++++++++++++++ |
15 |
scripts/show_deptree.pl | 9 +- |
16 |
5 files changed, 506 insertions(+), 6 deletions(-) |
17 |
|
18 |
diff --git a/scripts/gen_ebuild.pl b/scripts/gen_ebuild.pl |
19 |
new file mode 100755 |
20 |
index 0000000..4f09d25 |
21 |
--- /dev/null |
22 |
+++ b/scripts/gen_ebuild.pl |
23 |
@@ -0,0 +1,191 @@ |
24 |
+#!/usr/bin/env perl |
25 |
+ |
26 |
+eval 'echo "Called with something not perl"' && exit 1 # Non-Perl protection. |
27 |
+ if 0; |
28 |
+ |
29 |
+use 5.14.2; |
30 |
+use strict; |
31 |
+use warnings; |
32 |
+use FindBin; |
33 |
+use lib "$FindBin::Bin/lib"; |
34 |
+use env::gentoo::perl_experimental; |
35 |
+use utf8; |
36 |
+ |
37 |
+my $env = env::gentoo::perl_experimental->new(); |
38 |
+my $flags; |
39 |
+my $singleflags; |
40 |
+ |
41 |
+@ARGV = grep { defined } map { |
42 |
+ $_ =~ /^--(\w+)/ |
43 |
+ ? do { $flags->{$1}++; undef } |
44 |
+ : do { |
45 |
+ $_ =~ /^-(\w+)/ |
46 |
+ ? do { $singleflags->{$1}++; undef } |
47 |
+ : do { $_ } |
48 |
+ } |
49 |
+} @ARGV; |
50 |
+ |
51 |
+if ( $flags->{help} or $singleflags->{h} ) { print help(); exit 0; } |
52 |
+ |
53 |
+# FILENAME: show_deptree.pl |
54 |
+# CREATED: 25/10/11 12:15:51 by Kent Fredric (kentnl) <kentfredric@×××××.com> |
55 |
+# ABSTRACT: show the metadata harvested for a given packages install tree. |
56 |
+ |
57 |
+# usage: |
58 |
+# |
59 |
+# gen_ebuild.pl DOY/Moose-2.0301-TRIAL |
60 |
+# |
61 |
+sub help { |
62 |
+ return <<'EOF'; |
63 |
+gen_ebuild.pl |
64 |
+ |
65 |
+USAGE: |
66 |
+ |
67 |
+ show_deptree.pl DOY/Moose-2.0301-TRIAL |
68 |
+ |
69 |
+EOF |
70 |
+} |
71 |
+my ($release) = shift(@ARGV); |
72 |
+ |
73 |
+ |
74 |
+ |
75 |
+*STDOUT->binmode(':utf8'); |
76 |
+*STDERR->binmode(':utf8'); |
77 |
+ |
78 |
+require deptools; |
79 |
+ |
80 |
+my ( $release_info ) = deptools::get_deps( $release ); |
81 |
+my $dep_phases = deptools::get_dep_phases($release); |
82 |
+ |
83 |
+my @queue; |
84 |
+ |
85 |
+for my $module ( keys %{ $dep_phases->{modules} } ) { |
86 |
+ for my $declaration ( @{ $dep_phases->{modules}->{$module} } ) { |
87 |
+ push @queue, [ $module, $declaration ]; |
88 |
+ } |
89 |
+} |
90 |
+my @squeue = |
91 |
+ sort { $a->[1]->[2] cmp $b->[1]->[2] or $a->[1]->[3] cmp $b->[1]->[3] or $a->[0] cmp $b->[0] } @queue; |
92 |
+ |
93 |
+ |
94 |
+require dep::handler::stdout; |
95 |
+require dep::handler::bashcode; |
96 |
+ |
97 |
+my $handler = dep::handler::stdout->new(); |
98 |
+my $handler2 = dep::handler::bashcode->new(); |
99 |
+ |
100 |
+ |
101 |
+for my $qi (@squeue) { |
102 |
+ deptools::dispatch_dependency_handler( $release, @{$qi}, $handler2 ); |
103 |
+} |
104 |
+ |
105 |
+my $depends = []; |
106 |
+my $rdepends = []; |
107 |
+require POSIX; |
108 |
+my $year = POSIX::strftime('%Y', gmtime); |
109 |
+ |
110 |
+my $path = deptools::gentooize_pkg($release_info->{distribution} ); |
111 |
+require Gentoo::PerlMod::Version; |
112 |
+my $version = Gentoo::PerlMod::Version::gentooize_version( $release_info->{version} , { lax => 1 } ); |
113 |
+$env->root->subdir($path)->mkpath; |
114 |
+my $file = $env->root->subdir($path)->file($release_info->{distribution} . '-' . $version . '.ebuild' ); |
115 |
+ |
116 |
+my ( $fh ) = $file->openw; |
117 |
+say "Writing $file"; |
118 |
+$fh->say("# Copyright 1999-$year Gentoo Foundation"); |
119 |
+$fh->say("# Distributed under the terms of the GNU General Public License v2"); |
120 |
+$fh->say("# \$Header: \$"); |
121 |
+$fh->say("EAPI=4"); |
122 |
+$fh->say("MODULE_AUTHOR=" . $release_info->{author}); |
123 |
+$fh->say("MODULE_VERSION=" . $release_info->{version}); |
124 |
+$fh->say('inherit perl-module'); |
125 |
+$fh->say(''); |
126 |
+ |
127 |
+$fh->say('DESCRIPTION="' . quotemeta( $release_info->{abstract} ) . '"'); |
128 |
+ |
129 |
+my $lics = []; |
130 |
+my $licmap = { |
131 |
+ perl_5 => [qw( Artistic GPL-2 )], |
132 |
+}; |
133 |
+ |
134 |
+for my $lic ( @{ $release_info->{license} } ){ |
135 |
+ if ( exists $licmap->{$lic} ){ |
136 |
+ push @$lics, @{ $licmap->{$lic}}; |
137 |
+ } else { |
138 |
+ warn "No Gentoo maping listed for $lic license type"; |
139 |
+ } |
140 |
+} |
141 |
+ |
142 |
+if( scalar @$lics == 1 ){ |
143 |
+ $fh->say('LICENSE=" ' . $lics->[0] . '"'); |
144 |
+} elsif ( scalar @$lics > 1 ){ |
145 |
+ $fh->say('LICENSE=" || ( ' . (join q{ } , @$lics) . ' )"'); |
146 |
+} else { |
147 |
+ $fh->say('LICENSE=""'); |
148 |
+} |
149 |
+$fh->say('SLOT="0"'); |
150 |
+$fh->say('KEYWORDS="~amd64 ~x86"'); |
151 |
+if( $handler2->has_tdeps ) { |
152 |
+ $fh->say('IUSE="test"'); |
153 |
+} else { |
154 |
+ $fh->say('IUSE=""'); |
155 |
+} |
156 |
+ |
157 |
+if ( $handler2->has_cdeps ) { |
158 |
+ $fh->say('perl_meta_configure() {'); |
159 |
+ for my $dep ( @{ $handler2->cdeps } ) { |
160 |
+ $fh->say("\t# " . $dep->{dep}); |
161 |
+ $fh->say("\techo " . $dep->{install}); |
162 |
+ } |
163 |
+ $fh->say('}'); |
164 |
+ push @{ $depends }, '$(perl_meta_configure)'; |
165 |
+} |
166 |
+if ( $handler2->has_bdeps ) { |
167 |
+ $fh->say('perl_meta_build() {'); |
168 |
+ for my $dep ( @{ $handler2->bdeps } ) { |
169 |
+ $fh->say("\t# " . $dep->{dep}); |
170 |
+ $fh->say("\techo " . $dep->{install}); |
171 |
+ } |
172 |
+ $fh->say('}'); |
173 |
+ push @{ $depends }, '$(perl_meta_build)'; |
174 |
+ |
175 |
+} |
176 |
+if ( $handler2->has_rdeps ) { |
177 |
+ $fh->say('perl_meta_runtime() {'); |
178 |
+ for my $dep ( @{ $handler2->rdeps } ) { |
179 |
+ $fh->say("\t# " . $dep->{dep}); |
180 |
+ $fh->say("\techo " . $dep->{install}); |
181 |
+ } |
182 |
+ $fh->say('}'); |
183 |
+ push @{ $depends }, '$(perl_meta_runtime)'; |
184 |
+ push @{ $rdepends }, '$(perl_meta_runtime)'; |
185 |
+ |
186 |
+} |
187 |
+if ( $handler2->has_tdeps ) { |
188 |
+ $fh->say('perl_meta_test() {'); |
189 |
+ for my $dep ( @{ $handler2->tdeps } ) { |
190 |
+ $fh->say("\t# " . $dep->{dep}); |
191 |
+ $fh->say("\techo " . $dep->{install}); |
192 |
+ } |
193 |
+ $fh->say('}'); |
194 |
+ push @{ $depends }, 'test? ( $(perl_meta_test) )'; |
195 |
+} |
196 |
+ |
197 |
+$fh->say("DEPENDS=\"\n" . ( join qq{\n}, map { "\t$_" } @{$depends} ) . "\n\""); |
198 |
+$fh->say("RDEPENDS=\"\n" . ( join qq{\n}, map { "\t$_" } @{$rdepends} ) . "\n\""); |
199 |
+$fh->say("SRC_TEST=\"do\""); |
200 |
+ |
201 |
+#say pp( \%modules,);# { pretty => 1 } ); |
202 |
+exit 1; |
203 |
+ |
204 |
+sub pkg_for_module { |
205 |
+ my ($module) = shift; |
206 |
+ |
207 |
+} |
208 |
+ |
209 |
+sub gen_dep { |
210 |
+ state $template = qq{\t# %s%s\n\techo %s\n}; |
211 |
+ my ( $module, $version ) = @_; |
212 |
+ |
213 |
+} |
214 |
+ |
215 |
|
216 |
diff --git a/scripts/lib/dep/handler/bashcode.pm b/scripts/lib/dep/handler/bashcode.pm |
217 |
new file mode 100644 |
218 |
index 0000000..eb526e7 |
219 |
--- /dev/null |
220 |
+++ b/scripts/lib/dep/handler/bashcode.pm |
221 |
@@ -0,0 +1,80 @@ |
222 |
+use strict; |
223 |
+use warnings; |
224 |
+package dep::handler::bashcode; |
225 |
+# FILENAME: bashcode.pm |
226 |
+# CREATED: 31/10/11 14:22:06 by Kent Fredric (kentnl) <kentfredric@×××××.com> |
227 |
+# ABSTRACT: Bash code dep handler |
228 |
+ |
229 |
+use Moose; |
230 |
+ |
231 |
+has 'tdeps' => (is => 'rw',isa => 'ArrayRef', lazy => 1, predicate => 'has_tdeps' , default => sub { [] } ); |
232 |
+has 'rdeps' => (is => 'rw', isa => 'ArrayRef', lazy => 1, predicate => 'has_rdeps', default => sub { [] } ); |
233 |
+has 'cdeps' => (is => 'rw', isa => 'ArrayRef', lazy => 1, predicate => 'has_cdeps', default => sub { [] } ); |
234 |
+has 'bdeps' => (is => 'rw', isa => 'ArrayRef', lazy => 1, predicate => 'has_bdeps', default => sub { [] } ); |
235 |
+ |
236 |
+has dep_current => ( is => 'rw' , clearer => 'clear_current' ); |
237 |
+ |
238 |
+sub begin_dep { |
239 |
+ my ( $self, $release, $module, $declaration ) = @_; |
240 |
+ $self->dep_current( |
241 |
+ { |
242 |
+ for => $module, |
243 |
+ wanted => $declaration->[0], |
244 |
+ for_phase => $declaration->[2], |
245 |
+ priority => $declaration->[3], |
246 |
+ } |
247 |
+ ); |
248 |
+} |
249 |
+ |
250 |
+sub evt_not_any { |
251 |
+ my ( $self, $module, $declaration ) = @_; |
252 |
+ my $mesg = "No provider: $module "; |
253 |
+ $mesg .= $declaration->[0] if defined $declaration->[0]; |
254 |
+ warn($mesg . "\n"); |
255 |
+} |
256 |
+sub evt_multi { |
257 |
+ my ( $self, $module, $declaration ) = @_; |
258 |
+ my $mesg = "Mutli provider: $module "; |
259 |
+ $mesg .= $declaration->[0] if defined $declaration->[0]; |
260 |
+ warn($mesg . "\n"); |
261 |
+} |
262 |
+ |
263 |
+sub set_latest { |
264 |
+ my ( $self, $dep, $pkg ) = @_; |
265 |
+ $self->dep_current->{choose} = $pkg; |
266 |
+} |
267 |
+ |
268 |
+sub perl_dep { |
269 |
+ my ( $self, $module, $declaration , $pkg ) = @_ ; |
270 |
+ $self->dep_current->{choose} = $pkg; |
271 |
+} |
272 |
+ |
273 |
+sub provider_group { |
274 |
+ my ( $self, $data ) = @_; |
275 |
+} |
276 |
+ |
277 |
+sub done { |
278 |
+ my ( $self, $module, $declaration ) = @_; |
279 |
+ my $dc = $self->dep_current; |
280 |
+ # *STDOUT->say( $dc->{for_phase} . ' ' . $dc->{priority} . ' ' . $dc->{for} . ' ' . $dc->{wanted} . ' ' . $dc->{choose} ); |
281 |
+ $self->clear_current; |
282 |
+ return if ( $dc->{for_phase} eq 'develop' or $dc->{priority} ne 'requires' ); |
283 |
+ |
284 |
+ my $rec = { dep => $dc->{for} , install => $dc->{choose} }; |
285 |
+ if( $dc->{wanted} ){ |
286 |
+ require Gentoo::PerlMod::Version; |
287 |
+ $rec->{dep} .= ' ' . $dc->{wanted} . ' ( ' . Gentoo::PerlMod::Version::gentooize_version( $dc->{wanted} , { lax => 1 }) . ' )'; |
288 |
+ } |
289 |
+ |
290 |
+ push @{ $self->bdeps }, $rec if $dc->{for_phase} eq 'build'; |
291 |
+ push @{ $self->cdeps }, $rec if $dc->{for_phase} eq 'configure'; |
292 |
+ push @{ $self->tdeps }, $rec if $dc->{for_phase} eq 'test'; |
293 |
+ push @{ $self->rdeps }, $rec if $dc->{for_phase} eq 'runtime'; |
294 |
+ return; |
295 |
+} |
296 |
+ |
297 |
+no Moose; |
298 |
+__PACKAGE__->meta->make_immutable; |
299 |
+1; |
300 |
+ |
301 |
+ |
302 |
|
303 |
diff --git a/scripts/lib/deptools.pm b/scripts/lib/deptools.pm |
304 |
index a4cdc51..a38776d 100644 |
305 |
--- a/scripts/lib/deptools.pm |
306 |
+++ b/scripts/lib/deptools.pm |
307 |
@@ -146,8 +146,8 @@ sub get_dep_phases { |
308 |
my $module = $dep->{module}; |
309 |
my $required = ( $dep->{relationship} eq 'requires' ); |
310 |
|
311 |
- next unless $required; |
312 |
- next if $phase eq 'develop'; |
313 |
+ #next unless $required; |
314 |
+ #next if $phase eq 'develop'; |
315 |
|
316 |
$phases{$phase} //= []; |
317 |
$modules{$module} //= []; |
318 |
|
319 |
diff --git a/scripts/pvlist.pl b/scripts/pvlist.pl |
320 |
new file mode 100644 |
321 |
index 0000000..b248fa0 |
322 |
--- /dev/null |
323 |
+++ b/scripts/pvlist.pl |
324 |
@@ -0,0 +1,228 @@ |
325 |
+#!/usr/bin/env perl |
326 |
+use 5.14.2; |
327 |
+use strict; |
328 |
+use warnings; |
329 |
+ |
330 |
+# FILENAME: pvlist.pl |
331 |
+# CREATED: 16/10/11 20:16:03 by Kent Fredric (kentnl) <kentfredric@×××××.com> |
332 |
+# ABSTRACT: Show version history for interesting perl dists |
333 |
+ |
334 |
+use MetaCPAN::API; |
335 |
+use CPAN::Changes; |
336 |
+ |
337 |
+my $mcpan = MetaCPAN::API->new(); |
338 |
+ |
339 |
+my (@want_dists) = qw( |
340 |
+ App-cpanminus |
341 |
+ App-perlbrew |
342 |
+ Archive-Peek |
343 |
+ B-Hooks-OP-Check-EntersubForCV |
344 |
+ Business-Tax-VAT-Validation |
345 |
+ Catalyst-Action-REST |
346 |
+ Catalyst-Log-Log4perl |
347 |
+ Config-GitLike |
348 |
+ DBD-CSV |
349 |
+ Data-Handle |
350 |
+ DateTime-TimeZone-SystemV |
351 |
+ DateTime-TimeZone-Tzfile |
352 |
+ Devel-PatchPerl |
353 |
+ Dist-Zilla-Plugin-GithubMeta |
354 |
+ Dist-Zilla-Plugin-Test-Compile |
355 |
+ Dist-Zilla-Plugin-Test-Perl-Critic |
356 |
+ Dist-Zilla-Plugin-Twitter |
357 |
+ Dist-Zilla-PluginBundle-Author-KENTNL |
358 |
+ Filesys-Notify-Simple |
359 |
+ Filter-Simple |
360 |
+ FindBin-libs |
361 |
+ Git-Wrapper |
362 |
+ HTML-FormHandler |
363 |
+ HTML-Packer |
364 |
+ HTML-Template-Pro |
365 |
+ IO-Interactive |
366 |
+ JavaScript-Packer |
367 |
+ KiokuDB-Backend-DBI |
368 |
+ Lexical-Types |
369 |
+ Lingua-EN-Inflect-Phrase |
370 |
+ Module-Extract-Namespaces |
371 |
+ Module-Runtime |
372 |
+ MojoMojo |
373 |
+ Mojolicious |
374 |
+ MooseX-SetOnce |
375 |
+ MooseX-Types-Structured |
376 |
+ Net-Google-DataAPI |
377 |
+ Net-IPv4Addr |
378 |
+ ORLite-Migraate |
379 |
+ Object-ID |
380 |
+ POE-Component-SSLify |
381 |
+ Padre-Plugin-Vi |
382 |
+ Plack |
383 |
+ Plack-Middleware-ReverseProxy |
384 |
+ Pod-Elemental-Transformer-WikiDoc |
385 |
+ Scope-Upper |
386 |
+ Spark-Form |
387 |
+ Task-Spark-Form |
388 |
+ Test-LeakTrace |
389 |
+ Test-SharedFork |
390 |
+ Test-WWW-Mechanize-Catalyst |
391 |
+ Web-Scraper |
392 |
+ XML-RSS_LibXML |
393 |
+ XML-Smart |
394 |
+ XML-XSPF |
395 |
+ YAML-LibYAML |
396 |
+ autobox-Core |
397 |
+ autovivification |
398 |
+ perl5i |
399 |
+ CPANPLUS |
400 |
+ CPANPLUS-Dist-Build |
401 |
+ Devel-PPPort |
402 |
+ ExtUtils-MakeMaker |
403 |
+ Unicode-Collate |
404 |
+ Catalyst-Runtime |
405 |
+ Moose |
406 |
+ Class-MOP |
407 |
+ perl |
408 |
+ Dist-Zilla |
409 |
+ Package-Stash |
410 |
+ MetaCPAN-API |
411 |
+ Class-Load |
412 |
+ Dist-Zilla-PluginBundle-RJBS |
413 |
+); |
414 |
+ |
415 |
+my $oldest_date = '2011-09-01T00:00:00.000Z'; |
416 |
+my $newest_date = '2012-01-01T00:00:00.000Z'; |
417 |
+ |
418 |
+my (@styles) = ( |
419 |
+ "\e[0m", "\e[1m", "\e[3m", "\e[4m", "\e[7m", |
420 |
+ ( ( "\e[1m\e[3m", "\e[1m\e[4m", "\e[1m\e[7m", ), ( "\e[3m\e[4m", "\e[3m\e[7m", ), "\e[4m\e[7m", ), |
421 |
+ ( ( "\e[1m\e[3m\e[4m", "\e[1m\e[3m\e7m" ), ( "\e[3m\e[4m\e[7m", ), ), |
422 |
+ ( "\e[1m\e[3m\e[4m\e[7m", ), |
423 |
+); |
424 |
+ |
425 |
+my (@fgs) = ( "\e[30m", "\e[31m", "\e[32m", "\e[33m", "\e[34m", "\e[35m", "\e[36m", "\e[37m" ); |
426 |
+my (@bgs) = ( "\e[49m", "\e[41m", "\e[42m", "\e[43m", "\e[44m", "\e[45m", "\e[46m", "\e[47m", "\e[40m", ); |
427 |
+ |
428 |
+my @bad = ( |
429 |
+ [ undef, "\e[30m", "\e[40m" ], |
430 |
+ [ undef, "\e[30m", "\e[49m" ], |
431 |
+ [ undef, "\e[31m", "\e[41m" ], |
432 |
+ [ undef, "\e[32m", "\e[42m" ], |
433 |
+ [ undef, "\e[33m", "\e[43m" ], |
434 |
+ [ undef, "\e[34m", "\e[44m" ], |
435 |
+ [ undef, "\e[35m", "\e[45m" ], |
436 |
+ [ undef, "\e[36m", "\e[46m" ], |
437 |
+ [ undef, "\e[47m", "\e[47m" ], |
438 |
+); |
439 |
+ |
440 |
+sub is_bad { |
441 |
+ my ( $style, $fg, $bg ) = @_; |
442 |
+ for my $bc (@bad) { |
443 |
+ my ( $sm, $fgm, $bgm ); |
444 |
+ $sm = ( not defined $bc->[0] or $bc->[0] eq $style ); |
445 |
+ $fgm = ( not defined $bc->[1] or $bc->[1] eq $fg ); |
446 |
+ $bgm = ( not defined $bc->[2] or $bc->[2] eq $bg ); |
447 |
+ return 1 if ( $sm and $fgm and $bgm ); |
448 |
+ } |
449 |
+ return; |
450 |
+} |
451 |
+ |
452 |
+my (@colours); |
453 |
+ |
454 |
+for my $bg (@bgs) { |
455 |
+ for my $style (@styles) { |
456 |
+ |
457 |
+ for my $fg (@fgs) { |
458 |
+ next if is_bad( $style, $fg, $bg ); |
459 |
+ push @colours, $style . $fg . $bg; |
460 |
+ |
461 |
+ } |
462 |
+ } |
463 |
+} |
464 |
+ |
465 |
+my (@author_color_map) = @colours; |
466 |
+my (@dist_color_map) = @colours; |
467 |
+ |
468 |
+sub next_c { |
469 |
+ my $i = $_[0]; |
470 |
+ my $colour = shift @{$i}; |
471 |
+ push @{$i}, $colour; |
472 |
+ return $colour; |
473 |
+ |
474 |
+} |
475 |
+sub next_colour { |
476 |
+ return next_c \@colours; |
477 |
+} |
478 |
+ |
479 |
+my %dist_colours; |
480 |
+my %author_colours; |
481 |
+ |
482 |
+sub author_colour { |
483 |
+ return $author_colours{ $_[0] } if exists $author_colours{ $_[0] }; |
484 |
+ return ( $author_colours{ $_[0] } = next_c \@author_color_map ); |
485 |
+} |
486 |
+ |
487 |
+sub dist_colour { |
488 |
+ return $dist_colours{ $_[0] } if exists $dist_colours{ $_[0] }; |
489 |
+ return ( $dist_colours{ $_[0] } = next_c \@dist_color_map ); |
490 |
+} |
491 |
+ |
492 |
+sub ac { |
493 |
+ return author_colour( $_[0] ) . $_[0] . "\e[0m"; |
494 |
+} |
495 |
+ |
496 |
+sub dc { |
497 |
+ return dist_colour( $_[0] ) . $_[1] . "\e[0m"; |
498 |
+} |
499 |
+ |
500 |
+my $results = $mcpan->post( |
501 |
+ 'release', |
502 |
+ { |
503 |
+ query => { |
504 |
+ terms => { |
505 |
+ distribution => [ @want_dists, ], |
506 |
+ minimum_match => 1, |
507 |
+ } |
508 |
+ }, |
509 |
+ filter => { |
510 |
+ range => { |
511 |
+ date => { |
512 |
+ from => $oldest_date, |
513 |
+ to => $newest_date, |
514 |
+ }, |
515 |
+ }, |
516 |
+ }, |
517 |
+ sort => [ |
518 |
+ # { 'author' => 'asc', }, |
519 |
+ { 'date' => 'desc' , } |
520 |
+ ], |
521 |
+ fields => [qw( author name date distribution )], |
522 |
+ size => 1024, |
523 |
+ } |
524 |
+); |
525 |
+use Try::Tiny; |
526 |
+use Data::Dump qw( pp ); |
527 |
+for my $result ( @{ $results->{hits}->{hits} } ) { |
528 |
+ |
529 |
+ my %f = %{ $result->{fields} }; |
530 |
+ my ( $date, $distribution, $name, $author ) = @f{qw( date distribution name author)}; |
531 |
+ |
532 |
+ my $file; |
533 |
+ try { |
534 |
+ $file = $mcpan->source( |
535 |
+ author => $author, |
536 |
+ release => $name, |
537 |
+ path => 'Changes', |
538 |
+ ); |
539 |
+ }; |
540 |
+ my ( $changes, @releases); |
541 |
+ if ( $file ) { |
542 |
+ $changes = CPAN::Changes->load_string( $file ); |
543 |
+ } |
544 |
+ if ( $changes ){ |
545 |
+ @releases = $changes->releases(); |
546 |
+ } |
547 |
+ |
548 |
+ say sprintf "%s - %s/%s\e[0m", $date, ac($author), dc($distribution,$name); |
549 |
+ if ( @releases ) { |
550 |
+ say $releases[-1]->serialize; |
551 |
+ } |
552 |
+} |
553 |
|
554 |
diff --git a/scripts/show_deptree.pl b/scripts/show_deptree.pl |
555 |
index ef6d8e7..0c6893c 100755 |
556 |
--- a/scripts/show_deptree.pl |
557 |
+++ b/scripts/show_deptree.pl |
558 |
@@ -63,17 +63,19 @@ my @squeue = |
559 |
sort { $a->[1]->[2] cmp $b->[1]->[2] or $a->[1]->[3] cmp $b->[1]->[3] or $a->[0] cmp $b->[0] } @queue; |
560 |
|
561 |
require dep::handler::stdout; |
562 |
+require dep::handler::bashcode; |
563 |
+ |
564 |
my $handler = dep::handler::stdout->new(); |
565 |
+my $handler2 = dep::handler::bashcode->new(); |
566 |
+ |
567 |
|
568 |
for my $qi (@squeue) { |
569 |
- deptools::dispatch_dependency_handler( $release, @{$qi}, $handler ); |
570 |
+ deptools::dispatch_dependency_handler( $release, @{$qi}, $handler2 ); |
571 |
} |
572 |
|
573 |
#say pp( \%modules,);# { pretty => 1 } ); |
574 |
exit 1; |
575 |
|
576 |
- |
577 |
- |
578 |
sub pkg_for_module { |
579 |
my ($module) = shift; |
580 |
|
581 |
@@ -85,4 +87,3 @@ sub gen_dep { |
582 |
|
583 |
} |
584 |
|
585 |
- |