Alien-7zip

 view release on metacpan or  search on metacpan

alienfile  view on Meta::CPAN

      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';
    }
  };
}

alienfile  view on Meta::CPAN

      $_->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;

alienfile  view on Meta::CPAN

  } 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 1.127 second using v1.01-cache-2.11-cpan-49f99fa48dc )