App-af
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/App/palien.pm view on Meta::CPAN
use strict;
use warnings;
use 5.014;
package App::palien 0.18 {
use Getopt::Long qw( GetOptions );
use Pod::Usage qw( pod2usage );
use Path::Tiny qw( path );
# ABSTRACT: Command line interface to Alien::Base
# VERSION
sub _version ($)
{
my($alien) = @_;
my $class = ref $alien;
eval { $class->VERSION };
}
sub _modversion ($)
{
my($alien) = @_;
return $alien->version if $alien->can('version');
return 'unknown' unless $alien->can('config');
my $ver = $alien->config('version');
chomp $ver;
$ver;
}
sub _bin_dir
{
my($dir_sep, $alien) = @_;
join( $dir_sep, $alien->bin_dir );
}
sub _cflags ($)
{
my($alien) = @_;
scalar $alien->cflags;
}
sub _libs ($)
{
my($alien) = @_;
scalar $alien->libs;
}
sub main
{
local(undef, @ARGV) = @_;
my $bin_dir;
my $dir_sep = ' ';
my $cflags;
my $libs;
my $dll;
my $modversion;
my $detail;
my $status = 0;
GetOptions(
"bin-dir" => \$bin_dir,
"dir-sep" => \$dir_sep,
"cflags" => \$cflags,
"libs" => \$libs,
"dll" => \$dll,
"modversion" => \$modversion,
"detail|d" => \$detail,
"help|h" => sub { pod2usage({ -verbose => 2}) },
"version" => sub { print "App::palien version " . ($App::palien::VERSION || 'dev') . "\n"; exit 1; },
) || pod2usage(1);
unless(@ARGV)
{
my %mods;
foreach my $inc (@INC)
{
my $dir = path( "$inc/Alien" );
next unless -d $dir;
foreach my $pm (grep /\.pm$/, map { $_->basename } grep { -f $_ } $dir->children)
{
$pm =~ s/\.pm$//;
next if $pm =~ /^(Base|Packages|Builder|MSYS)$/;
print "$pm = $pm\n";
$mods{"Alien::$pm"} = 1;
}
my $share_root = path("$inc/auto/share/dist");
next unless -d $share_root;
foreach my $share (sort { $a->basename cmp $b->basename } $share_root->children)
{
my $readme = $share->child('README');
next unless (-r $readme) && ($readme->slurp =~ /This README file is autogenerated by Alien::Base/);
my $module = $share->basename;
$module =~ s/-/::/g;
$mods{$module} = 1;
}
}
@ARGV = sort keys %mods;
}
foreach my $module (@ARGV)
{
my $alien;
if($module =~ /::/)
{
$alien = eval {
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.519 second using v1.00-cache-2.02-grep-82fe00e-cpan-72ae3ad1e6da )