]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
Better logic for capturing "emerge --info" output
authorVincent Pit <vince@profvince.com>
Sat, 15 Aug 2009 08:49:47 +0000 (10:49 +0200)
committerVincent Pit <vince@profvince.com>
Sat, 15 Aug 2009 08:52:51 +0000 (10:52 +0200)
lib/CPANPLUS/Dist/Gentoo.pm

index e6dcb369b57ef8e64914f06b0491a45ca553548c..177c70f91df1e6db4d1c5b94442fa504d3d2b9be 100644 (file)
@@ -84,22 +84,22 @@ sub format_available {
  }
 
  if (IPC::Cmd->can_capture_buffer) {
-  my ($success, $errmsg, $output) = run command => [ qw/emerge --info/ ],
-                                        verbose => 0;
+  my $buffers;
+  my ($success, $errmsg) = run command => [ qw/emerge --info/ ],
+                               verbose => 0,
+                               buffer  => \$buffers;
   if ($success) {
-   for (@{$output || []}) {
-    if (/^PORTDIR_OVERLAY=(.*)$/m) {
-     $overlays = [ map abs_path($_), split ' ', _unquote($1) ];
-    }
-    if (/^ACCEPT_KEYWORDS=(.*)$/m) {
-     $default_keywords = [ split ' ', _unquote($1) ];
-    }
-    if (/^DISTDIR=(.*)$/m) {
-     $default_distdir = abs_path(_unquote($1));
-    }
-    if (/^PORTDIR=(.*)$/m) {
-     $main_portdir = abs_path(_unquote($1));
-    }
+   if ($buffers =~ /^PORTDIR_OVERLAY=(.*)$/m) {
+    $overlays = [ map abs_path($_), split ' ', _unquote($1) ];
+   }
+   if ($buffers =~ /^ACCEPT_KEYWORDS=(.*)$/m) {
+    $default_keywords = [ split ' ', _unquote($1) ];
+   }
+   if ($buffers =~ /^DISTDIR=(.*)$/m) {
+    $default_distdir = abs_path(_unquote($1));
+   }
+   if ($buffers =~ /^PORTDIR=(.*)$/m) {
+    $main_portdir = abs_path(_unquote($1));
    }
   } else {
    error $errmsg;