10 | 10 |
use ExtUtils::Install qw/pm_to_blib install/;
|
11 | 11 |
use ExtUtils::InstallPaths 0.002;
|
12 | 12 |
use File::Basename qw/dirname/;
|
13 | |
use File::Find::Rule qw/find/;
|
14 | 13 |
use File::HomeDir;
|
15 | 14 |
use File::Path qw/mkpath/;
|
16 | 15 |
use File::Spec::Functions qw/catfile catdir rel2abs abs2rel/;
|
|
48 | 47 |
return;
|
49 | 48 |
}
|
50 | 49 |
|
|
50 |
sub find {
|
|
51 |
my ($pattern, @dirs) = @_;
|
|
52 |
my @ret;
|
|
53 |
File::Find::find(sub { push @ret, $File::Find::name if -f $_ && $_ =~ $pattern }, @dirs);
|
|
54 |
return @ret;
|
|
55 |
}
|
|
56 |
|
51 | 57 |
my %actions = (
|
52 | 58 |
build => sub {
|
53 | 59 |
my %opt = @_;
|
54 | |
system $^X, $_ and die "$_ returned $?\n" for find(file => name => '*.PL', in => 'lib');
|
55 | |
my %modules = map { $_ => catfile('blib', $_) } find(file => name => [qw/*.pm *.pod/], in => 'lib');
|
56 | |
my %scripts = map { $_ => catfile('blib', $_) } find(file => name => '*', in => 'script');
|
57 | |
my %shared = map { $_ => catfile(qw/blib lib auto share dist/, $opt{meta}->name, abs2rel($_, 'share')) } find(file => name => '*', in => 'share');
|
|
60 |
system $^X, $_ and die "$_ returned $?\n" for find(qr/\.PL$/, 'lib');
|
|
61 |
my %modules = map { $_ => catfile('blib', $_) } find(qr/\.p(?:m|od)$/, 'lib');
|
|
62 |
my %scripts = map { $_ => catfile('blib', $_) } find(qr//, 'script');
|
|
63 |
my %shared = map { $_ => catfile(qw/blib lib auto share dist/, $opt{meta}->name, abs2rel($_, 'share')) } find(qr//, 'share');
|
58 | 64 |
pm_to_blib({ %modules, %scripts, %shared }, catdir(qw/blib lib auto/));
|
59 | 65 |
make_executable($_) for values %scripts;
|
60 | 66 |
mkpath(catdir(qw/blib arch/), $opt{verbose});
|
|
68 | 74 |
my %opt = @_;
|
69 | 75 |
die "Must run `./Build build` first\n" if not -d 'blib';
|
70 | 76 |
my $tester = TAP::Harness->new({verbosity => $opt{verbose}, lib => rel2abs(catdir(qw/blib lib/)), color => -t STDOUT});
|
71 | |
$tester->runtests(sort +find(file => name => '*.t', in => 't'))->has_errors and exit 1;
|
|
77 |
$tester->runtests(sort +find(qr/\.t$/, 't'))->has_errors and exit 1;
|
72 | 78 |
},
|
73 | 79 |
install => sub {
|
74 | 80 |
my %opt = @_;
|