This is an automated email from the git hooks/post-receive script.

kanashiro-guest pushed a commit to branch master
in repository carton.

commit f3cac18cbcae773679bde60443ed903121fcf0b1
Author: Tatsuhiko Miyagawa <miyag...@bulknews.net>
Date:   Sun Jun 26 00:50:18 2011 -0700

    Try to reinstall from build file
---
 lib/Carton.pm | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/lib/Carton.pm b/lib/Carton.pm
index 4a8c165..4c58a41 100644
--- a/lib/Carton.pm
+++ b/lib/Carton.pm
@@ -21,10 +21,26 @@ sub configure_cpanm {
 
 sub install_from_build_file {
     my($self, $file) = @_;
-    $self->run_cpanm("--installdeps", ".")
+
+    my @modules = $self->show_deps();
+    $self->run_cpanm(@modules)
         or die "Installing modules failed\n";
 }
 
+sub show_deps {
+    my $self = shift;
+
+    my @output = $self->run_cpanm_output("--showdeps", ".");
+    my @deps;
+    for my $line (@output) {
+        chomp $line;
+        my($mod, $ver) = split / /, $line, 2;
+        push @deps, $mod;
+    }
+
+    return @deps;
+}
+
 sub install_modules {
     my($self, $modules) = @_;
     $self->run_cpanm(@$modules)
@@ -181,6 +197,18 @@ sub build_deps {
     return @deps;
 }
 
+sub run_cpanm_output {
+    my($self, @args) = @_;
+
+    my $pid = open(my $kid, "-|"); # XXX portability
+    if ($pid) {
+        return <$kid>;
+    } else {
+        local $ENV{PERL_CPANM_OPT};
+        exec $self->{cpanm}, "--quiet", "-L", $self->{path}, @args;
+    }
+}
+
 sub run_cpanm {
     my($self, @args) = @_;
     local $ENV{PERL_CPANM_OPT};

-- 
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

Reply via email to