diff options
Diffstat (limited to 'lib/Carton/Builder.pm')
-rw-r--r-- | lib/Carton/Builder.pm | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/lib/Carton/Builder.pm b/lib/Carton/Builder.pm index de456d7..c29bfa3 100644 --- a/lib/Carton/Builder.pm +++ b/lib/Carton/Builder.pm @@ -6,7 +6,6 @@ use Class::Tiny { cascade => sub { 1 }, without => sub { [] }, cpanfile => undef, - fatscript => sub { $_[0]->_build_fatscript }, }; sub effective_mirrors { @@ -47,7 +46,7 @@ sub bundle { sub install { my($self, $path) = @_; - $self->run_cpanm( + $self->run_install( "-L", $path, (map { ("--mirror", $_->url) } $self->effective_mirrors), ( $self->index ? ("--mirror-index", $self->index) : () ), @@ -77,7 +76,7 @@ sub groups { sub update { my($self, $path, @modules) = @_; - $self->run_cpanm( + $self->run_install( "-L", $path, (map { ("--mirror", $_->url) } $self->effective_mirrors), ( $self->custom_mirror ? "--mirror-only" : () ), @@ -86,29 +85,16 @@ sub update { ) or die "Updating modules failed\n"; } -sub _build_fatscript { - my $self = shift; +sub run_install { + my($self, @args) = @_; - my $fatscript; - if ($Carton::Fatpacked) { - require Module::Reader; - my $content = Module::Reader::module_content('App::cpanminus::fatscript') - or die "Can't locate App::cpanminus::fatscript"; - $fatscript = Path::Tiny->tempfile; - $fatscript->spew($content); - } else { - require Module::Metadata; - $fatscript = Module::Metadata->find_module_by_name("App::cpanminus::fatscript") - or die "Can't locate App::cpanminus::fatscript"; - } + require Menlo::CLI::Compat; - return $fatscript; -} + my $cli = Menlo::CLI::Compat->new; + $cli->parse_options(@args); + $cli->run; -sub run_cpanm { - my($self, @args) = @_; - local $ENV{PERL_CPANM_OPT}; - !system $^X, $self->fatscript, "--quiet", "--notest", @args; + !$cli->status; } - + 1; |