]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/blobdiff - lib/CPANPLUS/Dist/Gentoo.pm
Abort completely when IPC::Cmd can't capture buffers
[perl/modules/CPANPLUS-Dist-Gentoo.git] / lib / CPANPLUS / Dist / Gentoo.pm
index 3d2e243b2a20de8a9e163ffce29dbd668774a6af..9a41af63ce89ea0562bb8c4377e9646932e37f72 100644 (file)
@@ -34,7 +34,7 @@ our $VERSION = '0.10';
 
 =head1 SYNOPSIS
 
-    # Using default values from your F<make.conf>
+    # Using default values from your make.conf
     cpan2dist --format=CPANPLUS::Dist::Gentoo --buildprereq Some::Module
 
     # Specifying your own options
@@ -49,7 +49,7 @@ our $VERSION = '0.10';
 
 =head1 DESCRPITON
 
-This module is a CPANPLUS backend that recursively generates Gentoo ebuilds for a given package in the specified overlay (defaults to F</usr/local/portage>), updates the manifest, and even emerges it (together with its dependencies) if the user requires it.
+This module is a CPANPLUS backend that recursively generates Gentoo ebuilds for a given package in the default overlay, updates the manifest, and even emerges it (together with its dependencies) if the user requires it.
 
 The generated ebuilds are placed into the C<perl-gcpanp> category.
 They favour depending on a C<virtual>, on C<perl-core>, C<dev-perl> or C<perl-gcpan> (in that order) rather than C<perl-gcpanp>.
@@ -121,6 +121,7 @@ L<cpan2dist> itself takes other options, most notably :
 =item *
 
 C<--buildprereq> generates an ebuild for every dependency, even for those that are already up-to-date.
+Setting this option is recommended.
 
 =item *
 
@@ -128,6 +129,10 @@ C<--force> forcefully regenerates ebuilds even if they already exist.
 
 =item *
 
+C<--install> installs the ebuilds after generating them.
+
+=item *
+
 C<--skiptest> skips tests while building, which speeds up the building process.
 
 =item *
@@ -218,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");
@@ -225,7 +239,7 @@ sub format_available {
   }
  }
 
if (IPC::Cmd->can_capture_buffer) {
+ {
   my $buffers;
   my ($success, $errmsg) = IPC::Cmd::run(
    command => [ qw<emerge --info> ],