[carton] 197/472: remove tree related code.
Lucas Kanashiro
kanashiro-guest at moszumanska.debian.org
Fri Jul 24 00:38:46 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 5c13391f20c1552235a334be07765eae2df659a4
Author: Tatsuhiko Miyagawa <miyagawa at bulknews.net>
Date: Thu May 30 16:12:32 2013 +0900
remove tree related code.
It was nice to have to visualize the dep tree, but not really
necessary for carton install and deployments.
---
lib/Carton.pm | 36 -----------
lib/Carton/CLI.pm | 34 +---------
lib/Carton/Doc/Tree.pod | 13 ----
lib/Carton/Tree.pm | 164 ------------------------------------------------
4 files changed, 2 insertions(+), 245 deletions(-)
diff --git a/lib/Carton.pm b/lib/Carton.pm
index 6953097..a7f78bc 100644
--- a/lib/Carton.pm
+++ b/lib/Carton.pm
@@ -226,39 +226,6 @@ sub walk_down_tree {
});
}
-sub build_tree {
- my($self, $modules, $root) = @_;
-
- my $idx = $self->build_index($modules);
- my $pool = { %$modules }; # copy
-
- my $tree = Carton::Tree->new;
-
- while (my $pick = (keys %$pool)[0]) {
- $self->_build_tree($pick, $tree, $tree, $pool, $idx);
- }
-
- $tree->finalize($root);
-
- return $tree;
-}
-
-sub _build_tree {
- my($self, $elem, $tree, $curr_node, $pool, $idx) = @_;
-
- if (my $cached = Carton::TreeNode->cached($elem)) {
- $curr_node->add_child($cached);
- return;
- }
-
- my $node = Carton::TreeNode->new($elem, $pool);
- $curr_node->add_child($node);
-
- for my $child ( $self->build_deps($node->metadata, $idx) ) {
- $self->_build_tree($child, $tree, $node, $pool, $idx);
- }
-}
-
sub merge_prereqs {
my($self, $prereqs) = @_;
@@ -361,11 +328,8 @@ sub check_satisfies {
$self->_check_satisfies($dep, \@unsatisfied, $index, \%pool);
}
- my $tree = keys %pool ? $self->build_tree(\%pool) : undef;
-
return {
unsatisfied => \@unsatisfied,
- superflous => $tree,
};
}
diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm
index 5e0ea1b..ce84b1d 100644
--- a/lib/Carton/CLI.pm
+++ b/lib/Carton/CLI.pm
@@ -10,7 +10,6 @@ use Term::ANSIColor qw(colored);
use Carton;
use Carton::Util;
use Carton::Error;
-use Carton::Tree;
use Try::Tiny;
use constant { SUCCESS => 0, INFO => 1, WARN => 2, ERROR => 3 };
@@ -217,31 +216,14 @@ sub cmd_show {
}
}
-sub cmd_tree {
- my $self = shift;
- $self->cmd_list("--tree", @_);
-}
-
sub cmd_list {
my($self, @args) = @_;
- my $tree_mode;
- $self->parse_options(\@args, "tree!" => \$tree_mode);
-
my $lock = $self->find_lock
or $self->error("Can't find carton.lock: Run `carton install` to rebuild the lock file.\n");
- if ($tree_mode) {
- my $tree = $self->carton->build_tree($lock->{modules});
- $self->carton->walk_down_tree($tree, sub {
- my($module, $depth) = @_;
- my $line = " " x $depth . "$module->{dist}\n";
- $self->print($line);
- });
- } else {
- for my $module (values %{$lock->{modules} || {}}) {
- $self->print("$module->{dist}\n");
- }
+ for my $module (values %{$lock->{modules} || {}}) {
+ $self->print("$module->{dist}\n");
}
}
@@ -267,17 +249,6 @@ sub cmd_check {
$ok = 0;
}
- if ($res->{superflous}) {
- $self->printf("Following modules are found in %s but couldn't be tracked from your $file\n",
- $self->carton->{path}, WARN);
- $self->carton->walk_down_tree($res->{superflous}, sub {
- my($module, $depth) = @_;
- my $line = " " x $depth . "$module->{dist}\n";
- $self->print($line);
- }, 1);
- $ok = 0;
- }
-
if ($ok) {
$self->printf("Dependencies specified in your $file are satisfied and matches with modules in %s.\n",
$self->carton->{path}, SUCCESS);
@@ -286,7 +257,6 @@ sub cmd_check {
sub cmd_update {
# "cleanly" update distributions in extlib
- # rebuild the tree, update modules with DFS
die <<EOF;
carton update is not implemented yet.
diff --git a/lib/Carton/Doc/Tree.pod b/lib/Carton/Doc/Tree.pod
deleted file mode 100644
index b6b0879..0000000
--- a/lib/Carton/Doc/Tree.pod
+++ /dev/null
@@ -1,13 +0,0 @@
-=head1 NAME
-
-Carton::Doc::Tree - List dependencies in a tree structure
-
-=head1 SYNOPSIS
-
- carton tree
-
-=head1 DESCRIPTION
-
-List the dependencies and version information tracked in the
-I<carton.lock> file as a tree structure. This command is an alias for
-C<carton list --tree>
diff --git a/lib/Carton/Tree.pm b/lib/Carton/Tree.pm
deleted file mode 100644
index fd9b6bb..0000000
--- a/lib/Carton/Tree.pm
+++ /dev/null
@@ -1,164 +0,0 @@
-package Carton::TreeNode;
-use strict;
-use warnings;
-
-my %cache;
-
-sub cached {
- my($class, $key) = @_;
- return $cache{$key};
-}
-
-sub new {
- my($class, $key, $pool) = @_;
-
- my $meta = delete $pool->{$key} || {};
-
- my $self = bless [ $key, $meta, [] ], $class;
- $cache{$key} = $self;
-
- return $self;
-}
-
-sub dump {
- my $self = shift;
- $self->walk_down(sub {
- my($node, $depth) = @_;
- print " " x $depth;
- print $node->key, "\n";
- });
-}
-
-sub walk_down {
- my($self, $cb) = @_;
- $self->_walk_down($cb, undef, 0);
-}
-
-sub _walk_down {
- my($self, $pre_cb, $post_cb, $depth) = @_;
-
- my @child = $self->children;
- for my $child ($self->children) {
- local $Carton::Tree::Abort = 0;
- if ($pre_cb) {
- $pre_cb->($child, $depth, $self);
- }
-
- unless ($Carton::Tree::Abort) {
- $child->_walk_down($pre_cb, $post_cb, $depth + 1);
- }
-
- if ($post_cb) {
- $post_cb->($child, $depth, $self);
- }
- }
-}
-
-sub abort {
- $Carton::Tree::Abort = 1;
-}
-
-sub key { $_[0]->[0] }
-sub metadata { $_[0]->[1] }
-
-sub spec {
- my $self = shift;
-
- my $meta = $self->metadata;
- my $version = $meta->{provides}{$meta->{name}}{version} || $meta->{version};
- $meta->{name} . ($version ? '~' . $version : '');
-}
-
-sub children { @{$_[0]->[2]} }
-
-sub add_child {
- my $self = shift;
- push @{$self->[2]}, @_;
-}
-
-sub remove_child {
- my($self, $rm) = @_;
-
- my @new;
- for my $child (@{$self->[2]}) {
- if ($rm->key eq $child->key) {
- undef $child;
- } else {
- push @new, $child;
- }
- }
-
- $self->[2] = \@new;
-}
-
-sub is {
- my($self, $node) = @_;
- $self->key eq $node->key;
-}
-
-package Carton::Tree;
-our @ISA = qw(Carton::TreeNode);
-
-sub new {
- bless [0, {}, []], shift;
-}
-
-sub finalize {
- my($self, $want_root) = @_;
-
- $want_root ||= {};
-
- my %subtree;
- my @ancestor;
-
- my $down = sub {
- my($node, $depth, $parent) = @_;
-
- if (grep $node->is($_), @ancestor) {
- $parent->remove_child($node);
- return $self->abort;
- }
-
- $subtree{$node->key} = 1 if $depth > 0;
-
- push @ancestor, $node;
- return 1;
- };
-
- my $up = sub { pop @ancestor };
- $self->_walk_down($down, $up, 0);
-
- # normalize: remove root nodes that are sub-tree of another
- for my $child ($self->children) {
- if ($subtree{$child->key}) {
- $self->remove_child($child);
- }
- }
-
- # Ugh, but if the build file is there, restore the links to sub-tree as a root elements
- my %curr_root = map { ($_->key => 1) } $self->children;
- for my $key (keys %$want_root) {
- my $node = $self->find_child($key) or next;
- unless ($curr_root{$node->key}) {
- $self->add_child($node);
- }
- }
-
- %cache = ();
-}
-
-sub find_child {
- my($self, $key) = @_;
-
- my $child;
- $self->walk_down(sub {
- if ($_[0]->key eq $key) {
- $child = $_[0];
- return $self->abort;
- }
- });
-
- return $child;
-}
-
-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