App-af

 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 distribution
 view release on metacpan -  search on metacpan

( run in 1.519 second using v1.00-cache-2.02-grep-82fe00e-cpan-72ae3ad1e6da )