From 220cd241cd8e64c5968df91c6f0a8083b49869ee Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Sat, 11 Aug 2018 16:33:12 -0400 Subject: projects: Improve Windows perl detection in batch scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Determine if perl is in the user's PATH by running perl.exe. Prior to this change detection was done by checking the PATH for perl/ but that did not work in all cases (eg git install includes perl but not in perl/ path). Bug: https://github.com/curl/curl/pull/2865 Reported-by: Daniel JeliƄski --- projects/build-openssl.bat | 33 ++++++++++++++------------------- projects/checksrc.bat | 2 +- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/projects/build-openssl.bat b/projects/build-openssl.bat index 9fd49b780..98daff529 100644 --- a/projects/build-openssl.bat +++ b/projects/build-openssl.bat @@ -153,26 +153,21 @@ rem *************************************************************************** rem Check we have Visual Studio installed if not exist "%ABS_VC_PATH%" goto novc - if not defined PERL_PATH ( - rem Check we have Perl in our path - rem using !! below as %% was having \Microsoft was unexpected error. - echo !PATH! | findstr /I /C:"\Perl" 1>nul - if errorlevel 1 ( - rem It isn't so check we have it installed and set the path if it is - if exist "%SystemDrive%\Perl" ( - set "PATH=%SystemDrive%\Perl\bin;%PATH%" - ) else ( - if exist "%SystemDrive%\Perl64" ( - set "PATH=%SystemDrive%\Perl64\bin;%PATH%" - ) else ( - - - - goto noperl - ) - ) - ) + rem Check we have Perl in our path + perl --version NUL 2>&1 + if errorlevel 1 ( + rem It isn't so check we have it installed and set the path if it is + if exist "%SystemDrive%\Perl" ( + set "PATH=%SystemDrive%\Perl\bin;%PATH%" + ) else ( + if exist "%SystemDrive%\Perl64" ( + set "PATH=%SystemDrive%\Perl64\bin;%PATH%" + ) else ( + goto noperl + ) + ) + ) ) else ( set "PATH=%PERL_PATH%\Perl\bin;%PATH%" ) diff --git a/projects/checksrc.bat b/projects/checksrc.bat index 3c38f50e6..5c8debf11 100644 --- a/projects/checksrc.bat +++ b/projects/checksrc.bat @@ -73,7 +73,7 @@ rem *************************************************************************** :prerequisites rem Check we have Perl in our path - echo %PATH% | findstr /I /C:"\Perl" 1>nul + perl --version NUL 2>&1 if errorlevel 1 ( rem It isn't so check we have it installed and set the path if it is if exist "%SystemDrive%\Perl" ( -- cgit v1.2.1