App-DualLivedList

 view release on metacpan or  search on metacpan

bin/dual-lived  view on Meta::CPAN

            $print->dark_red( "\tinstalled version: ", $d->inst_version ),
            $print->dark_red( "\t",                    $d->inst_file ),
            ;
    }
    print "\tIt's not on the Dual-Lived list", "\n";
}

print "\tFetching more details...\n";

my @d = Module::CoreList->find_modules(qr/^$d$/);
if (Module::CoreList::is_core($d)) {
     system("corelist $d");
}

else {
    print "\t$d is not core\n";
}

my $package = 'dual-lived';
my ( $name, $version ) = qw(App::DualLivedList 0.00_07);

my $verbose = 1;
my $debug   = 1;
my $trace   = 1;
my $test    = 1;

app_options();

$trace |= ( $debug || $test );

my $TMPDIR = $ENV{TMPDIR} || $ENV{TEMP} || '/usr/tmp';
exit 0;

sub app_options {
    Getopt::Long::Configure('bundling');
    GetOptions(
        'A|alpha'        => \&cpan_id,
        'a|authors'      => \&authors,
        'd|distribution' => \&distribution,
        'f|filestats'    => \&filestats,
        'l|list'         => \&list,
        'm|mods'         => \&modlist,
        'u|update'       => \&update,
        'v|version'      => \&version
    ) or Getopt::Long::HelpMessage(2);
}

sub version {
    print STDOUT ("This is $package [$name $version]\n");
}

sub list {
    print "module: ", "\n";
    foreach my $mod (@mods) {
        for $mod ( CPAN::Shell->expand( "Module", $mod ) ) {
            $print->bold_black( $mod->id );
        }
    }
}

sub update {
    CPAN::Shell->install($d);
}

sub filestats {

    use File::CountLines qw(count_lines);
    use Number::Bytes::Human qw(format_bytes);

    my $h = Number::Bytes::Human->new;
    for $d ( CPAN::Shell->expand( "Module", $d ) ) {
        my $size = $h->format( -s $d->inst_file );
        print "Installed size: ", $size, "\n";
        my $path     = ( $d->inst_file );
        my $no_lines = count_lines($path);
        print "Number of lines: ", $no_lines, "\n";
        print "Number of words: ";
        system("wc -w $path");
    }
}

sub authors {
    foreach my $mod (@mods) {
        for $mod ( CPAN::Shell->expand( "Module", $mod ) ) {
            $print->dark_blue( $mod->cpan_userid );
        }
    }
}

sub distribution {
    my $distribution
        = CPAN::Shell->expand( "Module", $d )->distribution()->pretty_id($d);
    print $distribution, "\n";

    CPAN::Index->reload();
    my @modules = CPAN::Shell->expand( "Distribution", $distribution )
        ->containsmods();
    foreach my $module (@modules) {
        print $module, "\n";
    }
}

sub cpan_id {
    foreach my $author (@authors) {
        $print->dark_blue($author);
    }
}

sub modlist {
    foreach my $mod (@mods) {
        $print->dark_blue($mod);
    }
}



( run in 1.305 second using v1.01-cache-2.11-cpan-9581c071862 )