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]

Reply via email to