diff --git a/fetch.bat b/fetch.bat index 26d8bc130..eef301915 100755 --- a/fetch.bat +++ b/fetch.bat @@ -7,8 +7,8 @@ setlocal :: Synchronize the root directory before deferring control back to gclient.py. call "%~dp0\update_depot_tools.bat" :: Abort the script if we failed to update depot_tools. -IF %ERRORLEVEL% NEQ 0 ( - exit /b %ERRORLEVEL% +IF %errorlevel% NEQ 0 ( + goto :EOF ) :: Ensure that "depot_tools" is somewhere in PATH so this tool can be used diff --git a/gclient.bat b/gclient.bat index 5a6ca1938..2934a6ce1 100755 --- a/gclient.bat +++ b/gclient.bat @@ -10,8 +10,8 @@ IF "%DEPOT_TOOLS_UPDATE%" == "0" GOTO :CALL_GCLIENT :: Synchronize the root directory before deferring control back to gclient.py. call "%~dp0update_depot_tools.bat" %* :: Abort the script if we failed to update depot_tools. -IF %ERRORLEVEL% NEQ 0 ( - exit /b %ERRORLEVEL% +IF %errorlevel% NEQ 0 ( + goto :EOF ) :CALL_GCLIENT diff --git a/gsutil.py.bat b/gsutil.py.bat index ab9719087..5f367cb2a 100755 --- a/gsutil.py.bat +++ b/gsutil.py.bat @@ -10,8 +10,8 @@ IF "%DEPOT_TOOLS_UPDATE%" == "0" GOTO :CALL_GSUTIL :: Synchronize the root directory before deferring control back to gsutil.py. call "%~dp0update_depot_tools.bat" %* :: Abort the script if we failed to update depot_tools. -IF %ERRORLEVEL% NEQ 0 ( - exit /b %ERRORLEVEL% +IF %errorlevel% NEQ 0 ( + goto :EOF ) :CALL_GSUTIL diff --git a/update_depot_tools b/update_depot_tools index b748ed0ff..ce95e8857 100755 --- a/update_depot_tools +++ b/update_depot_tools @@ -129,11 +129,7 @@ if [ "X$DEPOT_TOOLS_UPDATE" != "X0" ]; then if [ -e "$base_dir/.git" ]; then cd "$base_dir" update_git_repo - UPDATE_RESULT=$? cd - > /dev/null - if [[ $UPDATE_RESULT -ne 0 ]]; then - exit $UPDATE_RESULT - fi fi # Sync CIPD-boostrapped packages. diff --git a/update_depot_tools.bat b/update_depot_tools.bat index 563f13151..4381a6806 100644 --- a/update_depot_tools.bat +++ b/update_depot_tools.bat @@ -5,24 +5,17 @@ :: This batch file will try to sync the root directory. -setlocal enabledelayedexpansion +setlocal :: Windows freaks out if a file is overwritten while it's being executed. Copy :: this script off to a temporary location and reinvoke from there before :: running any git commands. IF "%~nx0"=="update_depot_tools.bat" ( COPY /Y "%~dp0update_depot_tools.bat" "%TEMP%\update_depot_tools_tmp.bat" >nul - if errorlevel 1 ( - echo Error updating depot_tools, can't copy update_depot_tools.bat to TEMP. - :: !VAR! syntax is used to get delayed expansion, because %VAR% syntax would - :: return a value that was set prior entering the IF () block. - exit /b !ERRORLEVEL! - ) + if errorlevel 1 goto :EOF :: Use call/exit to avoid leaving an orphaned window title. call "%TEMP%\update_depot_tools_tmp.bat" "%~dp0" %* - :: !VAR! syntax is used to get delayed expansion, because %VAR% syntax would - :: return a value that was set prior entering the IF () block. - exit /b !ERRORLEVEL! + exit /b %ERRORLEVEL% ) set DEPOT_TOOLS_DIR=%~1 @@ -32,16 +25,15 @@ SHIFT IF EXIST "%DEPOT_TOOLS_DIR%.disable_auto_update" GOTO :EOF IF "%DEPOT_TOOLS_UPDATE%" == "0" GOTO :EOF -echo Updating depot_tools... set GIT_URL=https://chromium.googlesource.com/chromium/tools/depot_tools.git :: Download git for the first time if it's not present. call git --version > nul 2>&1 -if %ERRORLEVEL% == 0 goto :GIT_UPDATE +if %errorlevel% == 0 goto :GIT_UPDATE call "%DEPOT_TOOLS_DIR%bootstrap\win_tools.bat" if errorlevel 1 ( echo Error updating depot_tools, no revision tool found. - exit /b %ERRORLEVEL% + goto :EOF ) :GIT_UPDATE @@ -68,7 +60,7 @@ call git fetch -q origin > NUL call git checkout -q origin/main > NUL if errorlevel 1 ( echo Failed to update depot_tools. - exit /b %ERRORLEVEL% + goto :EOF ) :: Sync CIPD and CIPD client tools.