This should allow the exec task to execute on Win9x. I have changed Glen's patch to test for platfrom != NT rather than == 98 so it will support 95. NOTE: There is an important limitation. Only 9 arguments can be passed to the command being exec'ed when the antRun.bat file is used. This should only occur when the directory is not . and the platform is not NT. This was the original reason this was changed (and antRun.bat) deleted. Submitted by: Glen Stampoultzis <trinexus@one.net.au> git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267789 13f79535-47bb-0310-9956-ffa450edef68master
@@ -2,10 +2,10 @@ | |||||
set REALANTHOME=%ANT_HOME% | set REALANTHOME=%ANT_HOME% | ||||
set ANT_HOME=. | set ANT_HOME=. | ||||
if not exist lib\ant.jar call bootstrap.bat | |||||
if not exist bin\ant.bat call bootstrap.bat | |||||
if not exist bin\lcp.bat call bootstrap.bat | |||||
if exist lib\ant.jar if exist bin\ant.bat if exist bin\lcp.bat if exist bin\antRun.bat goto runAnt | |||||
call bootstrap.bat | |||||
:runAnt | |||||
set ANT_INSTALL= | set ANT_INSTALL= | ||||
if not "%REALANTHOME%" == "" set ANT_INSTALL=-Dant.install %REALANTHOME% | if not "%REALANTHOME%" == "" set ANT_INSTALL=-Dant.install %REALANTHOME% | ||||
call .\bin\ant.bat %ANT_INSTALL% %1 %2 %3 %4 %5 %6 %7 %8 %9 | call .\bin\ant.bat %ANT_INSTALL% %1 %2 %3 %4 %5 %6 %7 %8 %9 | ||||
@@ -0,0 +1,9 @@ | |||||
@echo off | |||||
cd %1 | |||||
set ANT_RUN_CMD=%2 | |||||
shift | |||||
shift | |||||
%ANT_RUN_CMD% %1 %2 %3 %4 %5 %6 %7 %8 %9 | |||||
@@ -63,7 +63,6 @@ import java.io.*; | |||||
* @author duncan@x180.com | * @author duncan@x180.com | ||||
* @author rubys@us.ibm.com | * @author rubys@us.ibm.com | ||||
*/ | */ | ||||
public class Exec extends Task { | public class Exec extends Task { | ||||
private String os; | private String os; | ||||
private String out; | private String out; | ||||
@@ -95,8 +94,20 @@ public class Exec extends Task { | |||||
if (dir == null) dir = project.getBaseDir(); | if (dir == null) dir = project.getBaseDir(); | ||||
if (myos.toLowerCase().indexOf("windows") >= 0) { | if (myos.toLowerCase().indexOf("windows") >= 0) { | ||||
if (!dir.equals(project.resolveFile("."))) | |||||
command = "cmd /c cd " + dir + " && " + command; | |||||
if (!dir.equals(project.resolveFile("."))) { | |||||
if (myos.toLowerCase().indexOf("nt") >= 0) { | |||||
command = "cmd /c cd " + dir + " && " + command; | |||||
} | |||||
else { | |||||
String ant = project.getProperty("ant.home"); | |||||
if (ant == null) { | |||||
throw new BuildException("Property 'ant.home' not found", location); | |||||
} | |||||
String antRun = project.resolveFile(ant + "/bin/antRun.bat").toString(); | |||||
command = antRun + " " + dir + " " + command; | |||||
} | |||||
} | |||||
} else { | } else { | ||||
String ant = project.getProperty("ant.home"); | String ant = project.getProperty("ant.home"); | ||||
if (ant == null) throw new BuildException("Property 'ant.home' not found", location); | if (ant == null) throw new BuildException("Property 'ant.home' not found", location); | ||||