Author: antoine
Date: Mon Dec 5 14:28:46 2005
New Revision: 354209
URL: http://svn.apache.org/viewcvs?rev=354209&view=rev
Log:
Fix for Bugzilla 13655. Thanks to Simon Law. Proper return code for ant.bat
Modified:
ant/core/trunk/CONTRIBUTORS
ant/core/trunk/WHATSNEW
ant/core/trunk/contributors.xml
ant/core/trunk/docs/manual/running.html
ant/core/trunk/src/script/ant.bat
Modified: ant/core/trunk/CONTRIBUTORS
URL:
http://svn.apache.org/viewcvs/ant/core/trunk/CONTRIBUTORS?rev=354209&r1=354208&r2=354209&view=diff
==============================================================================
Binary files - no diff available.
Modified: ant/core/trunk/WHATSNEW
URL:
http://svn.apache.org/viewcvs/ant/core/trunk/WHATSNEW?rev=354209&r1=354208&r2=354209&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Mon Dec 5 14:28:46 2005
@@ -166,6 +166,8 @@
* PropertySet API setMapper(...) didn't properly set up the Mapper.
Bugzilla report 37760.
+* Proper return code for ant.bat. Bugzilla report 13655.
+
Other changes:
--------------
* New task <manifestclasspath> converts a path into a property
Modified: ant/core/trunk/contributors.xml
URL:
http://svn.apache.org/viewcvs/ant/core/trunk/contributors.xml?rev=354209&r1=354208&r2=354209&view=diff
==============================================================================
--- ant/core/trunk/contributors.xml (original)
+++ ant/core/trunk/contributors.xml Mon Dec 5 14:28:46 2005
@@ -837,6 +837,10 @@
<first>Sebastian</first>
<last>Kantha</last>
</name>
+ <name>
+ <first>Simon</first>
+ <last>Law</last>
+ </name>
<name>
<first>Stefan</first>
<last>Bodewig</last>
Modified: ant/core/trunk/docs/manual/running.html
URL:
http://svn.apache.org/viewcvs/ant/core/trunk/docs/manual/running.html?rev=354209&r1=354208&r2=354209&view=diff
==============================================================================
--- ant/core/trunk/docs/manual/running.html (original)
+++ ant/core/trunk/docs/manual/running.html Mon Dec 5 14:28:46 2005
@@ -445,7 +445,14 @@
properties that begin with these prefixes. This protects you from future
Ant releases breaking your build file.
</p>
-
+<h3>return code</h3>
+<p>the ant start up scripts (in their Windows and Unix version) return
+the return code of the java program. So a successful build returns 0,
+failed builds return other values.
+</p>
+<p>Under Windows95 and 98, a special environment variable ANT_ERROR will be set
+by the script ant.bat, because it is not possible to exit the script with a
+specific errorlevel.</p>
<h2><a name="cygwin">Cygwin Users</a></h2>
<p>The Unix launch script that come with Ant works correctly with Cygwin. You
Modified: ant/core/trunk/src/script/ant.bat
URL:
http://svn.apache.org/viewcvs/ant/core/trunk/src/script/ant.bat?rev=354209&r1=354208&r2=354209&view=diff
==============================================================================
--- ant/core/trunk/src/script/ant.bat (original)
+++ ant/core/trunk/src/script/ant.bat Mon Dec 5 14:28:46 2005
@@ -92,14 +92,23 @@
if "%_USE_CLASSPATH%"=="no" goto runAntNoClasspath
if not "%CLASSPATH%"=="" goto runAntWithClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar"
"-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS%
%ANT_CMD_LINE_ARGS%
+rem Check the error code of the Ant build
+if not "%OS%"=="Windows_NT" goto onError
+set ANT_ERROR=%ERRORLEVEL%
goto end
:runAntNoClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar"
"-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS%
%ANT_CMD_LINE_ARGS%
+rem Check the error code of the Ant build
+if not "%OS%"=="Windows_NT" goto onError
+set ANT_ERROR=%ERRORLEVEL%
goto end
:runAntWithClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar"
"-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -cp
"%CLASSPATH%" %ANT_CMD_LINE_ARGS%
+rem Check the error code of the Ant build
+if not "%OS%"=="Windows_NT" goto onError
+set ANT_ERROR=%ERRORLEVEL%
goto end
:runAntWithJikes
@@ -108,19 +117,57 @@
:runAntWithJikesNoClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar"
"-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%"
org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
+rem Check the error code of the Ant build
+if not "%OS%"=="Windows_NT" goto onError
+set ANT_ERROR=%ERRORLEVEL%
goto end
:runAntWithJikesAndClasspath
"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar"
"-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%"
org.apache.tools.ant.launch.Launcher %ANT_ARGS% -cp "%CLASSPATH%"
%ANT_CMD_LINE_ARGS%
+rem Check the error code of the Ant build
+if not "%OS%"=="Windows_NT" goto onError
+set ANT_ERROR=%ERRORLEVEL%
goto end
+:onError
+rem Windows 9x way of checking the error code. It matches via brute force.
+for %%i in (1 10 100) do set err%%i=
+for %%i in (0 1 2) do if errorlevel %%i00 set err100=%%i
+if %err100%==2 goto onError200
+if %err100%==0 set err100=
+for %%i in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %err100%%%i0 set err10=%%i
+if "%err100%"=="" if %err10%==0 set err10=
+:onError1
+for %%i in (0 1 2 3 4 5 6 7 8 9) do if errorlevel %err100%%err10%%%i set
err1=%%i
+goto onErrorEnd
+:onError200
+for %%i in (0 1 2 3 4 5) do if errorlevel 2%%i0 set err10=%%i
+if err10==5 for %%i in (0 1 2 3 4 5) do if errorlevel 25%%i set err1=%%i
+if not err10==5 goto onError1
+:onErrorEnd
+set ANT_ERROR=%err100%%err10%%err1%
+for %%i in (1 10 100) do set err%%i=
+
:end
set _JAVACMD=
set ANT_CMD_LINE_ARGS=
+rem Set the return code if we are not in NT. We can only set
+rem a value of 1, but it's better than nothing.
+if not "%OS%"=="Windows_NT" if "%ANT_ERROR%"=="" set ANT_ERROR=255
+if not "%OS%"=="Windows_NT" if "%ANT_ERROR%"=="0" goto quit
+if not "%OS%"=="Windows_NT" echo 1 > nul | choice /n /c:1
+rem Set the ERRORLEVEL if we are running NT.
+if "%OS%"=="Windows_NT" if "%ANT_ERROR%"=="" set ANT_ERROR=255
+if "%OS%"=="Windows_NT" if not %ANT_ERROR%==0 color 00
+goto quit
+
+rem If there were no errors, we run the post script.
if "%OS%"=="Windows_NT" @endlocal
if "%OS%"=="WINNT" @endlocal
:mainEnd
if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"
+
+:quit
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]