From 46541b4996f25b706146148331b9613c8a787e7e Mon Sep 17 00:00:00 2001 From: Bruce Dawson Date: Tue, 13 Feb 2018 11:14:12 -0800 Subject: [PATCH] Fix autoninja && chrome on failed builds A handy usage pattern for autoninja.bat that I was not aware of is to go autoninja -C out\Default chrome && chrome This will build chrome and then run it, but only run it if the build succeeds. The addition of post_build_ninja_summary.py broke this by losing the error code. This change fixes it by using black magic to set an error code in the failure case. Bug: chromium:787983 Change-Id: Ib87fd1799816e19d56de76e08e0f9688be903d80 Reviewed-on: https://chromium-review.googlesource.com/916705 Reviewed-by: Dirk Pranke Commit-Queue: Bruce Dawson --- autoninja | 10 ++++++++-- autoninja.bat | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/autoninja b/autoninja index 9e64c30bc..d6e065f12 100755 --- a/autoninja +++ b/autoninja @@ -10,7 +10,13 @@ command=$(python $(dirname -- "$0")/autoninja.py "$@") echo $command $command -if [ $? -eq 0 ] && [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then - python $(dirname -- "$0")/post_build_ninja_summary.py $@ +if [ $? -eq 0 ]; then + if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then + python $(dirname -- "$0")/post_build_ninja_summary.py $@ + fi + exit fi +# Return an error code of 1 so that if a developer types: +# "autoninja chrome && chrome" then chrome won't run if the build fails. +exit 1 diff --git a/autoninja.bat b/autoninja.bat index 5e1b6fe7c..a071fb96e 100755 --- a/autoninja.bat +++ b/autoninja.bat @@ -8,4 +8,8 @@ REM Also print it to reassure that the right settings are being used. FOR /f "usebackq tokens=*" %%a in (`python %~dp0autoninja.py "%*"`) do echo %%a & %%a @if errorlevel 1 goto buildfailure @if "%NINJA_SUMMARIZE_BUILD%" == "1" python %~dp0post_build_ninja_summary.py %* +exit /b :buildfailure +REM Return an error code of 1 so that if a developer types: +REM "autoninja chrome && chrome" then chrome won't run if the build fails. +cmd /c exit 1