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,

Reply via email to