summaryrefslogtreecommitdiff
path: root/lib/Carton/Builder.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Carton/Builder.pm')
-rw-r--r--lib/Carton/Builder.pm34
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;