Browse Source

Enable runprebuild.bat to run in Cygwin

This resolves http://opensimulator.org/mantis/view.php?id=6951
Oren Hurvitz 10 years ago
parent
commit
425d76bb98
1 changed files with 13 additions and 5 deletions
  1. 13 5
      runprebuild.bat

+ 13 - 5
runprebuild.bat

@@ -7,11 +7,19 @@ setlocal ENABLEEXTENSIONS
 set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0"
 set VALUE_NAME=MSBuildToolsPath
 
-rem We have to use find here as req query spits out 4 lines before Windows 7
-rem But 2 lines after Windows 7.  Unfortunately, this screws up cygwin
-rem as it uses its own find command.  This could be fixed but it could be
-rem complex to find the location of find on all windows systems
-FOR /F "usebackq tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul ^| FIND "%VALUE_NAME%"`) DO (
+rem We have to use grep or find to locate the correct line, because reg query spits
+rem out 4 lines before Windows 7 but 2 lines after Windows 7.
+rem We use grep if it's on the path; otherwise we use the built-in find command
+rem from Windows. (We must use grep on Cygwin because it overrides the "find" command.)
+
+for %%X in (grep.exe) do (set FOUNDGREP=%%~$PATH:X)
+if defined FOUNDGREP (
+  set FINDCMD=grep
+) else (
+  set FINDCMD=find
+)
+
+FOR /F "usebackq tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul ^| %FINDCMD% "%VALUE_NAME%"`) DO (
     set ValueName=%%A
     set ValueType=%%B
     set ValueValue=%%C