Pcore
view release on metacpan or search on metacpan
lib/Pcore/Dist/Build/Temp.pm view on Meta::CPAN
return $path;
}
sub _gather_files ($self) {
my $tree = Pcore::Util::File::Tree->new;
for my $dir (qw[bin lib share t xt]) {
$tree->add_dir( "$self->{dist}->{root}/$dir", $dir );
}
# relocate files, apply cpan_manifest_skip
my $cpan_manifest_skip = $self->{dist}->cfg->{cpan} && $self->{dist}->cfg->{cpan_manifest_skip} && $self->{dist}->cfg->{cpan_manifest_skip}->@* ? $self->{dist}->cfg->{cpan_manifest_skip} : undef;
for my $file ( values $tree->{files}->%* ) {
if ($cpan_manifest_skip) {
my $skipped;
for my $skip_re ( $cpan_manifest_skip->@* ) {
if ( $file->{path} =~ $skip_re ) {
$skipped = 1;
lib/Pcore/Dist/Build/Temp.pm view on Meta::CPAN
last;
}
}
next if $skipped;
}
if ( $file->{path} =~ m[\Abin/(.+)\z]sm ) {
# relocate scripts from the /bin/ to /script/
my $name = $1;
if ( $file->{path} !~ m[[.].+\z]sm ) { # no extension
$file->move("script/$name");
}
elsif ( $file->{path} =~ m[[.](?:pl|sh|cmd|bat)\z]sm ) { # allowed extensions
$file->move("script/$name");
}
else {
$file->remove;
}
}
elsif ( $file->{path} =~ m[\At/(.+)\z]sm && $file->{path} !~ m[[.]t\z]sm ) {
# olny *.t files are allowed in /t/ dir
$file->remove;
}
elsif ( $file->{path} =~ m[\Axt/(author|release|smoke)/(.+)\z]sm ) {
# patch /xt/*/.t files and relocate to the /t/ dir
my $test = $1;
my $name = $2;
# add common header to /xt/*.t file
if ( $file->{path} =~ m[[.]t\z]sm ) {
$file->move("t/$test-$name");
$self->_patch_xt( $file, $test );
}
( run in 1.505 second using v1.01-cache-2.11-cpan-71847e10f99 )