[carton] 174/472: Fix bundle command, so that it will use .lock to build packages to determine versions
Lucas Kanashiro
kanashiro-guest at moszumanska.debian.org
Fri Jul 24 00:38:44 UTC 2015
This is an automated email from the git hooks/post-receive script.
kanashiro-guest pushed a commit to branch master
in repository carton.
commit 858b7deedc4c28e7cacbd1fc1adf9b1ff5a31a09
Author: Tatsuhiko Miyagawa <miyagawa at bulknews.net>
Date: Wed Feb 6 10:59:45 2013 -0800
Fix bundle command, so that it will use .lock to build packages to determine versions
---
lib/Carton.pm | 29 +++++++++++------------------
lib/Carton/CLI.pm | 10 +++++++---
2 files changed, 18 insertions(+), 21 deletions(-)
diff --git a/lib/Carton.pm b/lib/Carton.pm
index 61feb85..8ade44e 100644
--- a/lib/Carton.pm
+++ b/lib/Carton.pm
@@ -36,14 +36,6 @@ sub lock { $_[0]->{lock} }
sub local_mirror { File::Spec->rel2abs("$_[0]->{path}/cache") }
-sub download_from_cpanfile {
- my($self, $cpanfile, $local_mirror) = @_;
-
- my @modules = $self->list_dependencies;
- $self->download_conservative(\@modules, $local_mirror, 1)
- or die "Bundling modules failed\n";
-}
-
sub install_from_cpanfile {
my($self, $file, $cascade) = @_;
@@ -80,30 +72,31 @@ sub dedupe_modules {
return [ reverse @result ];
}
-sub download_conservative {
- my($self, $modules, $dir, $cascade) = @_;
- $modules = $self->dedupe_modules($modules);
+sub download_from_cpanfile {
+ my($self, $cpanfile, $local_mirror) = @_;
+
+ my @modules = $self->list_dependencies;
+ my $modules = $self->dedupe_modules(\@modules);
+
+ my $index = $self->build_index($self->lock->{modules});
+ $self->build_mirror_file($index, $self->{mirror_file});
my $mirror = $self->{mirror} || $DefaultMirror;
local $self->{path} = File::Temp::tempdir(CLEANUP => 1); # ignore installed
$self->run_cpanm(
+ "-v",
"--mirror", $mirror,
"--mirror", "http://backpan.perl.org/", # fallback
+ "--mirror-index", $self->{mirror_file},
"--no-skip-satisfied",
( $mirror ne $DefaultMirror ? "--mirror-only" : () ),
- ( $cascade ? "--cascade-search" : () ),
"--scandeps",
- "--save-dists", $dir,
+ "--save-dists", $local_mirror,
@$modules,
);
-
- # write 02packages using local installations
- my %installs = $self->find_installs;
- my $index = $self->build_index(\%installs);
- $self->build_mirror_file($index, $self->{mirror_file});
}
sub install_conservative {
diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm
index e90353c..5e0ea1b 100644
--- a/lib/Carton/CLI.pm
+++ b/lib/Carton/CLI.pm
@@ -136,17 +136,21 @@ sub cmd_bundle {
$self->parse_options(\@args, "p|path=s" => sub { $self->carton->{path} = $_[1] });
+ my $lock = $self->find_lock;
my $local_mirror = $self->carton->local_mirror;
$self->carton->configure(
- mirror_file => $self->mirror_file, # $lock object?
+ lock => $lock,
+ mirror_file => $self->mirror_file,
);
- if (my $cpanfile = $self->has_cpanfile) {
+ my $cpanfile = $self->has_cpanfile;
+
+ if ($cpanfile && $lock) {
$self->print("Bundling modules using $cpanfile\n");
$self->carton->download_from_cpanfile($cpanfile, $local_mirror);
} else {
- $self->error("Can't locate build file\n");
+ $self->error("Can't locate cpanfile and lock file. Run carton install first\n");
}
$self->printf("Complete! Modules were bundled into %s\n", $local_mirror, SUCCESS);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/carton.git
More information about the Pkg-perl-cvs-commits
mailing list