[svn:CPANPLUS-Dist-Build] r14925 - CPANPLUS-Dist-Build/trunk/lib/CPANPLUS/Dist

[email protected] Sun, 4 Sep 2011 12:47:22 -0700 (PDT)
Newsgroups perl.module.build.checkins
Message-ID <[email protected]>
Author: BINGOS
Date: Sun Sep  4 12:47:21 2011
New Revision: 14925

Modified:
   CPANPLUS-Dist-Build/trunk/lib/CPANPLUS/Dist/Build.pm

Log:
Added local::lib type behaviour detection to disable use of 'sudo'

Modified: CPANPLUS-Dist-Build/trunk/lib/CPANPLUS/Dist/Build.pm
==============================================================================
--- CPANPLUS-Dist-Build/trunk/lib/CPANPLUS/Dist/Build.pm	(original)
+++ CPANPLUS-Dist-Build/trunk/lib/CPANPLUS/Dist/Build.pm	Sun Sep  4 12:47:21 2011
@@ -759,9 +759,17 @@
         else {
             $cmd     = [$perl, $run_perl, BUILD->($dir), "install", @buildflags];
         }
-        my $sudo    = $conf->get_program('sudo');
-        unshift @$cmd, $sudo if $sudo;
 
+        ### Detect local::lib type behaviour. Do not use 'sudo' in these cases
+        my $sudo    = $conf->get_program('sudo');
+        SUDO: {
+          ### Actual local::lib in use
+          last SUDO if defined $ENV{PERL_MB_OPT} and $ENV{PERL_MB_OPT} =~ m!install_base!;
+          ### 'buildflags' is configured with '--install_base'
+          last SUDO if scalar grep { m!install_base! } @buildflags;
+          ### oh well 'sudo make me a sandwich'
+          unshift @$cmd, $sudo;
+        }
 
         my $buffer;
         unless( scalar run( command => $cmd,