1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#!/usr/bin/perl
package Perl::PrereqScanner::App;
{
$Perl::PrereqScanner::App::VERSION = '1.012';
}
# ABSTRACT: scan your working dir for likely prereqs
use strict;
use warnings;
use File::Spec::Functions qw{ catdir updir };
use FindBin qw{ $Bin };
use lib catdir( $Bin, updir, 'lib' );
use List::Util qw{ max };
use Perl::PrereqScanner;
use CPAN::Meta::Requirements ();
use Getopt::Long qw{ GetOptions };
my %options;
GetOptions(
\%options,
'combine!',
);
my $combined = $options{combine} && CPAN::Meta::Requirements->new;
foreach my $file ( @ARGV ) {
my $prereqs = Perl::PrereqScanner->new->scan_file($file);
if( $options{combine} ){
$combined->add_requirements($prereqs);
}
else {
print "* $file\n";
print_prereqs($prereqs);
}
}
if( $options{combine} ){
print_prereqs($combined);
}
sub print_prereqs {
my $prereqs = shift->as_string_hash;
my $max = max map { length } keys %$prereqs;
printf( "%-${max}s = %s\n", $_, $prereqs->{$_} )
for sort keys %$prereqs;
}
exit;
__END__
=pod
=head1 NAME
Perl::PrereqScanner::App - scan your working dir for likely prereqs
=head1 VERSION
version 1.012
=head1 AUTHORS
=over 4
=item *
Jerome Quelin
=item *
Ricardo Signes <rjbs@cpan.org>
=back
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Jerome Quelin.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|