summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatsuhiko Miyagawa <miyagawa@bulknews.net>2018-04-21 18:46:36 +0200
committerTatsuhiko Miyagawa <miyagawa@bulknews.net>2018-04-21 18:46:36 +0200
commite54f915f45f9b3c0df355c8fc07cd96bb35b4bce (patch)
tree618f9d2b92b6ee1454ae6bd4e918e4e84dd543d1
parentf13faa875d61f8128155afef8086bebeeec9b03d (diff)
downloadcarton-menlo-cli-compat.tar.gz
switch to use Menlo to invoke cpanm insallermenlo-cli-compat
-rw-r--r--cpanfile4
-rw-r--r--lib/Carton/Builder.pm34
2 files changed, 11 insertions, 27 deletions
diff --git a/cpanfile b/cpanfile
index bdaa6cd..5daf9ed 100644
--- a/cpanfile
+++ b/cpanfile
@@ -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;