use alienfile;
use Env qw( @PATH );
use Path::Tiny qw( path );

meta->prop->{arch} = 0;

plugin 'Probe::CommandLine' => (
  command => 'alien',
  args    => [ '--version' ],
  match   => qr/alien version/,
  version => qr/alien version ([0-9\.]+)/,
);

share {

  plugin 'Download' => (
    url => 'https://sourceforge.net/projects/alien-pkg-convert/files/release/',
    filter => qr/^alien/,
    version => qr/([0-9\.]+)/,
  );
  
  plugin 'Decode::SourceForge';

  plugin 'Extract' => (
    format => 'tar.xz',
  );

  meta->around_hook(
    around => sub {
      my($orig, @rest) = @_;
      
      unshift @PATH, Alien::xz->bin_dir;
      
      $orig->(@rest);
    },
  );

  patch sub {
    my $fix = "use File::Basename ();\nuse File::Spec;\nuse  lib File::Spec->catdir(File::Basename::dirname(File::Spec->rel2abs(__FILE__)),qw( .. lib perl5 ));\n";
    my $alien_pl = path('alien.pl');
    my($shebang, @rest) = $alien_pl->lines_utf8;
    $alien_pl->spew_utf8($shebang, $fix, @rest);
  };

  meta->around_hook(
    build => sub {
      my($orig, $build) = @_;
    
      my $prefix = $build->install_prop->{prefix};
    
      local $ENV{PERL_LOCAL_LIB_ROOT} = $prefix;
      local $ENV{PERL_MM_OPT}         = "INSTALL_BASE=$prefix";
      
      $orig->($build);
    
    },
  );
  
  build [
    'mkdir -p lib',
    'mv Alien lib',
    '%{perl} Makefile.PL',
    '%{make}',
    '%{make} install',
  ];

};
