File Coverage

blib/lib/Alien/Build/Plugin/Fetch/Prompt.pm
Criterion Covered Total %
statement 20 20 100.0
branch 2 2 100.0
condition 4 5 80.0
subroutine 6 6 100.0
pod 1 1 100.0
total 33 34 97.0


line stmt bran cond sub pod time code
1             package Alien::Build::Plugin::Fetch::Prompt;
2              
3 2     2   398743 use strict;
  2         15  
  2         63  
4 2     2   10 use warnings;
  2         4  
  2         55  
5 2     2   42 use 5.010;
  2         7  
6 2     2   1338 use Alien::Build::Plugin;
  2         24231  
  2         16  
7              
8             # ABSTRACT: Alien::Build plugin to prompt a user before making external download
9             our $VERSION = '0.60'; # VERSION
10              
11              
12             sub init
13             {
14 1     1 1 50439 my($self, $meta) = @_;
15              
16 1         7 $meta->add_requires('share' => 'ExtUtils::MakeMaker' => 0 );
17              
18             $meta->before_hook(
19             fetch => sub {
20 4     4   27714 my($build, $url) = @_;
21 4   66     17 $url ||= $build->meta_prop->{plugin_download_negotiate_default_url};
22 4   100     69 my $value = ExtUtils::MakeMaker::prompt("Downloading $url, is that okay?", $ENV{ALIEN_DOWNLOAD} || 'yes');
23 4 100       48 unless($value =~ /^(y|yes)$/i)
24             {
25 1         14 $build->log("User refussed to download $url");
26             # Do a hard exit. If the user insists, there isn't a way to recover really.
27 1         1059 exit 2;
28             }
29             }
30 1         24 );
31             }
32              
33             1;
34              
35             __END__