This is an automated email from the git hooks/post-receive script. kanashiro-guest pushed a commit to branch master in repository carton.
commit 76204ccce01dab0ad307d67beeda9bf3357bbfde Author: Tatsuhiko Miyagawa <miyag...@bulknews.net> Date: Thu Apr 12 21:40:03 2012 +0900 drop uninstall command --- lib/Carton/CLI.pm | 58 ------------------------------------------- lib/Carton/Doc/Uninstall.pod | 25 ------------------- xt/cli/uninstall.t | 20 --------------- xt/cli/uninstall_dep.t | 59 -------------------------------------------- 4 files changed, 162 deletions(-) diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm index b673478..90a1b78 100644 --- a/lib/Carton/CLI.pm +++ b/lib/Carton/CLI.pm @@ -187,64 +187,6 @@ sub cmd_install { $self->printf("Complete! Modules were installed into %s\n", $self->carton->{path}, SUCCESS); } -sub cmd_uninstall { - my($self, @args) = @_; - - $self->parse_options(\@args, "p|path=s", sub { $self->carton->{path} = $_[1] }); - - my $lock = $self->find_lock - or $self->error("Can't find carton.lock: Run `carton install`"); - - my $index = $self->carton->build_index($lock->{modules}); - - my @meta; - for my $module (@args) { - if (exists $index->{$module}) { - push @meta, $index->{$module}{meta}; - } else { - $self->print("Can't locate module $module\n", WARN); - } - } - - my %root; - if ($self->has_cpanfile) { - for my $dep ($self->carton->list_dependencies) { - my($mod, $ver) = split /~/, $dep; - if (exists $index->{$mod}) { - $root{ $index->{$mod}{meta}{name} } = 1; - } - } - } - - # only can uninstall root dependencies - my $tree = $self->carton->build_tree($lock->{modules}, \%root); - for my $root ($tree->children) { - if (grep $_->{name} eq $root->key, @meta) { - $tree->remove_child($root); - } - } - - my @missing = grep !$tree->find_child($_), keys %{$lock->{modules}}; - for my $module (@missing) { - my $meta = $lock->{modules}{$module}; - $self->print("Uninstalling $meta->{dist}\n"); - $self->carton->uninstall($lock, $module); - } - - for my $meta (@meta) { - unless (grep $meta->{name} eq $_, @missing) { - $self->print("$meta->{name} is dependent by some other modules. Can't uninstall it.\n", WARN); - } - } - - $self->carton->update_lock_file($self->lock_file); - - if (@missing) { - $self->printf("Complete! Modules and its dependencies were uninstalled from %s\n", - $self->carton->{path}, SUCCESS); - } -} - sub mirror_file { my $self = shift; return $self->work_file("02packages.details.txt"); diff --git a/lib/Carton/Doc/Uninstall.pod b/lib/Carton/Doc/Uninstall.pod deleted file mode 100644 index e09002d..0000000 --- a/lib/Carton/Doc/Uninstall.pod +++ /dev/null @@ -1,25 +0,0 @@ -=head1 NAME - -Carton::Doc::Uninstall - uninstall modules from your local environment - -=head1 SYNOPSIS - - carton uninstall Module - -=head1 DESCRIPTION - -This command allows you to uninstall modules and its dependencies from -your local environment. - -You're only allowed to uninstall modules that are not dependent by -other modules. So if you have a dependency tree like: - - Dancer-2.1 - URI-1.5 - HTTP-Body-1.3 - LWP-1.2 - URI-1.4 - -you can uninstall either I<HTTP::Body> or I<Dancer>, but when you -uninstall I<Dancer>, because I<URI> is referenced by I<LWP>, it will -uninstall only I<Dancer>. diff --git a/xt/cli/uninstall.t b/xt/cli/uninstall.t deleted file mode 100644 index f3d3ca1..0000000 --- a/xt/cli/uninstall.t +++ /dev/null @@ -1,20 +0,0 @@ -use strict; -use Test::More; -use xt::CLI; - -{ - my $app = cli(); - - $app->run("install", "Try::Tiny"); - $app->run("list"); - like $app->output, qr/Try-Tiny-/; - - $app->run("uninstall", "Try::Tiny"); - like $app->output, qr/Uninstalling Try-Tiny-/; - - $app->run("list"); - like $app->output, qr/^\s*$/s; -} - -done_testing; - diff --git a/xt/cli/uninstall_dep.t b/xt/cli/uninstall_dep.t deleted file mode 100644 index 684961c..0000000 --- a/xt/cli/uninstall_dep.t +++ /dev/null @@ -1,59 +0,0 @@ -use strict; -use Test::More; -use xt::CLI; -use Cwd; - -{ - my $app = cli(); - - $app->dir->touch("Makefile.PL", <<EOF); -use ExtUtils::MakeMaker; -WriteMakefile( - NAME => 'foo', - VERSION => '0.1', - PREREQ_PM => { - CGI => 3.50, - FCGI => 0.72, - }, -); -EOF - - $app->run("install"); - $app->run("uninstall", "CGI"); - - like $app->output, qr/Uninstalling CGI/; - unlike $app->output, qr/Uninstalling FCGI/; - - $app->run("list"); - unlike $app->output, qr/^CGI-/m; - like $app->output, qr/FCGI-/; - - $app->run("uninstall", "FCGI"); - like $app->output, qr/Uninstalling FCGI/; -} - -{ - my $app = cli(); - - $app->dir->touch("Makefile.PL", <<EOF); -use ExtUtils::MakeMaker; -WriteMakefile( - NAME => 'foo', - VERSION => '0.1', - PREREQ_PM => { - 'JSON::PP' => 0, - 'CPAN::Meta' => 0, - }, -); -EOF - - $app->run("install"); - $app->run("uninstall", "JSON::PP"); - - like $app->output, qr/JSON::PP is dependent by/; -} - -done_testing; - - - -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/carton.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits