[carton] 346/472: refactored to remove environment attribute and unnecessary methods
Lucas Kanashiro
kanashiro-guest at moszumanska.debian.org
Fri Jul 24 00:39:23 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 b8470a21aaeaaec11dc91af875a7a5353abab8db
Author: Tatsuhiko Miyagawa <miyagawa at bulknews.net>
Date: Tue Jul 23 11:31:36 2013 -0700
refactored to remove environment attribute and unnecessary methods
---
lib/Carton/CLI.pm | 117 ++++++++++++++++++++++++------------------------------
1 file changed, 51 insertions(+), 66 deletions(-)
diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm
index 558456e..83953ff 100644
--- a/lib/Carton/CLI.pm
+++ b/lib/Carton/CLI.pm
@@ -28,25 +28,12 @@ has verbose => (is => 'rw');
has carton => (is => 'lazy');
has mirror => (is => 'rw', builder => 1,
coerce => sub { Carton::Mirror->new($_[0]) });
-has environment => (is => 'rw', builder => 1, lazy => 1,
- handles => [ qw( cpanfile lockfile install_path vendor_cache )]);
sub _build_mirror {
my $self = shift;
$ENV{PERL_CARTON_MIRROR} || $Carton::Mirror::DefaultMirror;
}
-sub _build_environment {
- Carton::Environment->build;
-}
-
-sub work_file {
- my($self, $file) = @_;
- my $wf = $self->install_path->child($file);
- $wf->parent->mkpath;
- $wf;
-}
-
sub run {
my($self, @args) = @_;
@@ -157,18 +144,18 @@ sub cmd_version {
sub cmd_bundle {
my($self, @args) = @_;
- $self->lockfile->load;
- my $cpanfile = $self->cpanfile;
+ my $env = Carton::Environment->build;
+ $env->lockfile->load;
- $self->print("Bundling modules using $cpanfile\n");
+ $self->print("Bundling modules using @{[$env->cpanfile]}\n");
my $builder = Carton::Builder->new(
mirror => $self->mirror,
- cpanfile => $self->cpanfile,
+ cpanfile => $env->cpanfile,
);
- $builder->bundle($self->install_path, $self->vendor_cache, $self->lockfile);
+ $builder->bundle($env->install_path, $env->vendor_cache, $env->lockfile);
- $self->printf("Complete! Modules were bundled into %s\n", $self->vendor_cache, SUCCESS);
+ $self->printf("Complete! Modules were bundled into %s\n", $env->vendor_cache, SUCCESS);
}
sub cmd_install {
@@ -185,61 +172,61 @@ sub cmd_install {
"cached!" => \my $cached,
);
- my $environment = Carton::Environment->build($cpanfile_path, $install_path);
- $self->environment($environment);
-
- $self->lockfile->load_if_exists;
+ my $env = Carton::Environment->build($cpanfile_path, $install_path);
+ $env->lockfile->load_if_exists;
- if ($deployment && !$self->lockfile->loaded) {
+ if ($deployment && !$env->lockfile->loaded) {
$self->error("--deployment requires carton.lock: Run `carton install` and make sure carton.lock is checked into your version control.\n");
}
- my $cpanfile = $self->cpanfile;
-
my $builder = Carton::Builder->new(
cascade => 1,
mirror => $self->mirror,
without => \@without,
- cpanfile => $self->cpanfile,
+ cpanfile => $env->cpanfile,
);
# TODO: --without with no .lock won't fetch the groups, resulting in insufficient requirements
if ($deployment) {
- $self->print("Installing modules using $cpanfile (deployment mode)\n");
+ $self->print("Installing modules using @{[$env->cpanfile]} (deployment mode)\n");
$builder->cascade(0);
} else {
- $self->print("Installing modules using $cpanfile\n");
+ $self->print("Installing modules using @{[$env->cpanfile]}\n");
}
# TODO merge CPANfile git to mirror even if lock doesn't exist
- if ($self->lockfile->loaded) {
- $self->lockfile->write_index($self->index_file);
- $builder->index($self->index_file);
+ if ($env->lockfile->loaded) {
+ my $index_file = $env->install_path->child("cache/modules/02packages.details.txt");
+ $index_file->parent->mkpath;
+
+ $env->lockfile->write_index($index_file);
+ $builder->index($index_file);
}
if ($cached) {
- $builder->mirror(Carton::Mirror->new($self->vendor_cache));
+ $builder->mirror(Carton::Mirror->new($env->vendor_cache));
}
- $builder->install($self->install_path);
+ $builder->install($env->install_path);
unless ($deployment) {
- my $prereqs = Module::CPANfile->load($cpanfile)->prereqs;
- $self->lockfile->find_installs($self->install_path, $prereqs);
- $self->lockfile->save;
+ my $prereqs = Module::CPANfile->load($env->cpanfile)->prereqs;
+ $env->lockfile->find_installs($env->install_path, $prereqs);
+ $env->lockfile->save;
}
- $self->print("Complete! Modules were installed into @{[$self->install_path]}\n", SUCCESS);
+ $self->print("Complete! Modules were installed into @{[$env->install_path]}\n", SUCCESS);
}
sub cmd_show {
my($self, @args) = @_;
- $self->lockfile->load;
+ my $env = Carton::Environment->build;
+ $env->lockfile->load;
for my $module (@args) {
- my $dist = $self->lockfile->find($module)
+ my $dist = $env->lockfile->find($module)
or $self->error("Couldn't locate $module in carton.lock\n");
$self->print( $dist->dist . "\n" );
}
@@ -255,9 +242,10 @@ sub cmd_list {
"distfile" => sub { $format = 'distfile' },
);
- $self->lockfile->load;
+ my $env = Carton::Environment->build;
+ $env->lockfile->load;
- for my $dist ($self->lockfile->distributions) {
+ for my $dist ($env->lockfile->distributions) {
$self->print($dist->$format . "\n");
}
}
@@ -265,10 +253,11 @@ sub cmd_list {
sub cmd_tree {
my($self, @args) = @_;
- $self->lockfile->load;
+ my $env = Carton::Environment->build;
+ $env->lockfile->load;
- my $cpanfile = Module::CPANfile->load($self->cpanfile);
- my $requirements = Carton::Requirements->new(lock => $self->lockfile, prereqs => $cpanfile->prereqs);
+ my $cpanfile = Module::CPANfile->load($env->cpanfile);
+ my $requirements = Carton::Requirements->new(lock => $env->lockfile, prereqs => $cpanfile->prereqs);
my %seen;
my $dumper = sub {
@@ -289,21 +278,19 @@ sub cmd_check {
"cpanfile=s" => \$cpanfile_path,
);
- my $environment = Carton::Environment->build($cpanfile_path);
- $self->environment($environment);
-
- $self->lockfile->load;
+ my $env = Carton::Environment->build($cpanfile_path);
+ $env->lockfile->load;
- my $prereqs = Module::CPANfile->load($self->cpanfile)->prereqs;
+ my $prereqs = Module::CPANfile->load($env->cpanfile)->prereqs;
# TODO remove lockfile
# TODO pass git spec to Requirements?
- my $requirements = Carton::Requirements->new(lock => $self->lockfile, prereqs => $prereqs);
+ my $requirements = Carton::Requirements->new(lock => $env->lockfile, prereqs => $prereqs);
$requirements->walk_down(sub { });
my @missing;
for my $module ($requirements->all->required_modules) {
- my $install = $self->lockfile->find_or_core($module);
+ my $install = $env->lockfile->find_or_core($module);
if ($install) {
unless ($requirements->all->accepts_module($module => $install->version)) {
push @missing, [ $module, 1, $install->version ];
@@ -335,7 +322,9 @@ sub cmd_check {
sub cmd_update {
my($self, @args) = @_;
- my $cpanfile = Module::CPANfile->load($self->cpanfile);
+ my $env = Carton::Environment->build;
+
+ my $cpanfile = Module::CPANfile->load($env->cpanfile);
my $prereqs = $cpanfile->prereqs;
my $reqs = CPAN::Meta::Requirements->new;
@@ -344,11 +333,11 @@ sub cmd_update {
@args = grep { $_ ne 'perl' } $reqs->required_modules unless @args;
- $self->lockfile->load;
+ $env->lockfile->load;
my @modules;
for my $module (@args) {
- my $dist = $self->lockfile->find_or_core($module)
+ my $dist = $env->lockfile->find_or_core($module)
or $self->error("Could not find module $module.\n");
next if $dist->is_core;
push @modules, "$module~" . $reqs->requirements_for_module($module);
@@ -356,18 +345,19 @@ sub cmd_update {
my $builder = Carton::Builder->new(
mirror => $self->mirror,
- cpanfile => $self->cpanfile,
+ cpanfile => $env->cpanfile,
);
- $builder->update($self->install_path, @modules);
+ $builder->update($env->install_path, @modules);
- $self->lockfile->find_installs($self->install_path, $prereqs);
- $self->lockfile->save;
+ $env->lockfile->find_installs($env->install_path, $prereqs);
+ $env->lockfile->save;
}
sub cmd_exec {
my($self, @args) = @_;
- $self->lockfile->load;
+ my $env = Carton::Environment->build;
+ $env->lockfile->load;
# allows -Ilib
@args = map { /^(-[I])(.+)/ ? ($1,$2) : $_ } @args;
@@ -388,16 +378,11 @@ sub cmd_exec {
}
# PERL5LIB takes care of arch
- my $path = $self->install_path;
+ my $path = $env->install_path;
local $ENV{PERL5LIB} = "$path/lib/perl5";
local $ENV{PATH} = "$path/bin:$ENV{PATH}";
$UseSystem ? system(@args) : exec(@args);
}
-sub index_file {
- my $self = shift;
- $self->work_file("cache/modules/02packages.details.txt");
-}
-
1;
--
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