diff options
author | Tatsuhiko Miyagawa <miyagawa@bulknews.net> | 2018-04-21 18:46:36 +0200 |
---|---|---|
committer | Tatsuhiko Miyagawa <miyagawa@bulknews.net> | 2018-04-21 18:46:36 +0200 |
commit | e54f915f45f9b3c0df355c8fc07cd96bb35b4bce (patch) | |
tree | 618f9d2b92b6ee1454ae6bd4e918e4e84dd543d1 | |
parent | f13faa875d61f8128155afef8086bebeeec9b03d (diff) | |
download | carton-menlo-cli-compat.tar.gz |
switch to use Menlo to invoke cpanm insallermenlo-cli-compat
-rw-r--r-- | cpanfile | 4 | ||||
-rw-r--r-- | lib/Carton/Builder.pm | 34 |
2 files changed, 11 insertions, 27 deletions
@@ -5,7 +5,6 @@ on configure => sub { requires 'perl', '5.8.5'; requires 'JSON', 2.53; -requires 'Module::Metadata', 1.000003; requires 'Module::CPANfile', 0.9031; requires 'Try::Tiny', 0.09; @@ -14,14 +13,13 @@ requires 'Getopt::Long', 2.39; requires 'Class::Tiny', 1.001; requires 'Path::Tiny', 0.033; -requires 'App::cpanminus', 1.7030; +requires 'Menlo', '1.9016'; requires 'CPAN::Meta', 2.120921; requires 'CPAN::Meta::Requirements', 2.121; requires 'Module::CoreList'; # for fatpack -requires 'Module::Reader', 0.002; recommends 'File::pushd'; recommends 'App::FatPacker', 0.009018; 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; |