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]