Author: dagolden
Date: Tue Sep  8 19:58:08 2009
New Revision: 13297

Modified:
   Module-Build/trunk/Build.PL
   Module-Build/trunk/lib/Module/Build/Base.pm
   Module-Build/trunk/t/actions/installdeps.t

Log:
use IPC::Cmd to find the right cpan client for installdeps

Modified: Module-Build/trunk/Build.PL
==============================================================================
--- Module-Build/trunk/Build.PL (original)
+++ Module-Build/trunk/Build.PL Tue Sep  8 19:58:08 2009
@@ -38,6 +38,7 @@
     'ExtUtils::Manifest'    => 0,
     'ExtUtils::Mkbootstrap' => 0,
     'IO::File'              => 0,
+    'IPC::Cmd'              => 0,
     'Cwd'                   => 0,
     'Text::Abbrev'          => 0,
     'Text::ParseWords'      => 0,

Modified: Module-Build/trunk/lib/Module/Build/Base.pm
==============================================================================
--- Module-Build/trunk/lib/Module/Build/Base.pm (original)
+++ Module-Build/trunk/lib/Module/Build/Base.pm Tue Sep  8 19:58:08 2009
@@ -3168,11 +3168,12 @@
   # relative command should be relative to our active Perl
   # so we need to locate that command
   if ( ! File::Spec->file_name_is_absolute( $command ) ) {
+    require IPC::Cmd;
     my @bindirs = File::Basename::dirname($self->perl);
     push @bindirs, map {$self->config->{"install${_}bin"}} '','site','vendor';
     for my $d ( @bindirs ) {
-      my $abs_cmd = File::Spec->catfile( $d, $command );
-      if ( -x $abs_cmd ) {
+      my $abs_cmd = IPC::Cmd::can_run(File::Spec->catfile( $d, $command ));
+      if ( defined $abs_cmd ) {
         $command = $abs_cmd;
         last;
       }

Modified: Module-Build/trunk/t/actions/installdeps.t
==============================================================================
--- Module-Build/trunk/t/actions/installdeps.t  (original)
+++ Module-Build/trunk/t/actions/installdeps.t  Tue Sep  8 19:58:08 2009
@@ -2,6 +2,7 @@
 use lib $ENV{PERL_CORE} ? '../lib/Module/Build/t/lib' : 't/lib';
 use MBTest;
 use DistGen;
+use IPC::Cmd ();
 
 plan tests => 7; 
 
@@ -33,7 +34,8 @@
     $dist->run_build('installdeps')
 });
 ok( length($out), "ran mocked Build installdeps");
-like( $out, qr/$^X/, "relative cpan_client resolved relative to \$^X" );
+my $expected = quotemeta(IPC::Cmd::can_run($^X));
+like( $out, qr/$expected/i, "relative cpan_client resolved relative to \$^X" );
 like( $out, qr/File::Spec/, "saw File::Spec prereq" );
 like( $out, qr/Getopt::Long/, "saw Getopt::Long prereq" );
 

Reply via email to