Alien-7zip
view release on metacpan or search on metacpan
my $prefix = Path::Tiny::path($build->install_prop->{prefix});
my $output = Path::Tiny::path($build_dir, $output_dir);
my $prefix_bin_name = $prefix->child('bin', $bin_name);
$prefix_bin_name->parent->mkpath;
File::Copy::Recursive::fcopy($output->child($bin_name), $prefix_bin_name);
}
];
after build => sub {
my($build) = @_;
$build->runtime_prop->{'style'} = 'source';
if( $^O ne 'MSWin32' ) {
# on Unix-likes (linux, darwin)
$build->runtime_prop->{command} = '7zz';
} else {
# TODO not yet implemented
$build->runtime_prop->{command} = '7z.exe';
}
};
}
$_->remove for $_7zip->children( qr/\.chm$|History\.txt|readme\.txt/ );
my $bin_dir = $cwd->child('bin');
$bin_dir->mkpath;
File::Copy::Recursive::rmove( "$_7zip/*", $bin_dir );
$_7zip->remove_tree;
$_7zip->parent->remove_tree unless $_7zip->parent->children;
};
plugin 'Build::Copy';
after build => sub {
my($build) = @_;
$build->runtime_prop->{'style'} = 'binary';
# on MSWin32
$build->runtime_prop->{command} = '7z.exe';
};
} elsif( $binary_release_format eq '.tar.xz' ) {
plugin Extract => 'tar.xz';
patch sub {
my $cwd = Path::Tiny->cwd;
# remove History.txt, readme.txt, MANUAL/
$_->remove_tree for $cwd->children( qr/MANUAL|History\.txt|readme\.txt/ );
my $bin_dir = $cwd->child('bin');
$bin_dir->mkpath;
# Move 7zz|7zzs into bin/ (if exist)
File::Copy::Recursive::rmove( "$_", $bin_dir ) for $cwd->children( qr/^(7zz|7zzs)$/ );
};
plugin 'Build::Copy';
after build => sub {
my($build) = @_;
$build->runtime_prop->{'style'} = 'binary';
# on Unix-likes (linux, darwin)
$build->runtime_prop->{command} = '7zz';
};
}
}
sub _fix_share_version {
meta->around_hook(
prefer => sub {
my $orig = shift;
} elsif( exists $release_types->{ $ENV{ALIEN_7ZIP_SHARE_PREFER} } ) {
$release_types->{ $ENV{ALIEN_7ZIP_SHARE_PREFER} }{$_}->() for qw(can do);
} else {
die "Unknown value for ALIEN_7ZIP_SHARE_PREFER: $ENV{ALIEN_7ZIP_SHARE_PREFER}";
}
};
sys {
meta->after_hook( probe => sub {
my($build) = @_;
$build->runtime_prop->{'style'} = 'system';
});
};
t/alien_7zip.t view on Meta::CPAN
use Test2::V0;
use Test::Alien;
use Test::Alien::Diag;
use Alien::7zip;
alien_diag 'Alien::7zip';
diag "Alien::7zip {style} : ", Alien::7zip->runtime_prop->{'style'};
alien_ok 'Alien::7zip';
run_ok( Alien::7zip->exe )
->success
->out_like(qr/7-Zip (?:\Q(z) \E)?([0-9\.]+)/,);
done_testing;
( run in 0.803 second using v1.01-cache-2.11-cpan-49f99fa48dc )