]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
Abort completely when IPC::Cmd can't capture buffers
authorVincent Pit <vince@profvince.com>
Thu, 16 Dec 2010 13:52:51 +0000 (14:52 +0100)
committerVincent Pit <vince@profvince.com>
Thu, 16 Dec 2010 13:52:51 +0000 (14:52 +0100)
lib/CPANPLUS/Dist/Gentoo.pm

index 73c6197ce9a1442987f329ec52f79a1225073b32..9a41af63ce89ea0562bb8c4377e9646932e37f72 100644 (file)
@@ -223,6 +223,15 @@ my $format_available;
 sub format_available {
  return $format_available if defined $format_available;
 
+ unless (IPC::Cmd->can_capture_buffer) {
+  my $msg = 'IPC::Cmd must be able to capture buffers.';
+  unless (do { local $@; eval { require IPC::Run; 1 } }) {
+   $msg  .= ' Try installing IPC::Run (dev-perl/IPC-Run on Gentoo).';
+  }
+  __PACKAGE__->_abort($msg);
+  return $format_available = 0;
+ }
+
  for my $prog (qw<emerge ebuild>) {
   unless (IPC::Cmd::can_run($prog)) {
    __PACKAGE__->_abort("$prog is required to write ebuilds");
@@ -230,7 +239,7 @@ sub format_available {
   }
  }
 
if (IPC::Cmd->can_capture_buffer) {
+ {
   my $buffers;
   my ($success, $errmsg) = IPC::Cmd::run(
    command => [ qw<emerge --info> ],