You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.5 KiB
Batchfile
73 lines
2.5 KiB
Batchfile
@echo off
|
|
:: Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
:: Use of this source code is governed by a BSD-style license that can be
|
|
:: found in the LICENSE file.
|
|
|
|
:: This batch file will try to sync the root directory.
|
|
|
|
setlocal enabledelayedexpansion
|
|
|
|
:: 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.
|
|
:: !ERRORLEVEL! syntax is used to get delayed expansion, because %ERRORLEVEL%
|
|
:: would return a value that was set prior entering the IF block.
|
|
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.
|
|
exit /b !ERRORLEVEL!
|
|
)
|
|
:: Use call/exit to avoid leaving an orphaned window title.
|
|
call "%TEMP%\update_depot_tools_tmp.bat" "%~dp0" %*
|
|
exit /b !ERRORLEVEL!
|
|
)
|
|
|
|
setlocal disabledelayedexpansion
|
|
|
|
set DEPOT_TOOLS_DIR=%~1
|
|
SHIFT
|
|
|
|
:: Shall skip automatic update?
|
|
IF EXIST "%DEPOT_TOOLS_DIR%.disable_auto_update" GOTO :EOF
|
|
IF "%DEPOT_TOOLS_UPDATE%" == "0" GOTO :EOF
|
|
|
|
echo Updating depot_tools...
|
|
|
|
:: Trigger generating depot_tools' git wrappers in case they are in a bad state.
|
|
:: This can happen if there was a problem installing CIPD packages in the
|
|
:: previous attempt to update depot_tools, and the bootstrapping script was not
|
|
:: run.
|
|
call git --version > nul 2>&1
|
|
if %ERRORLEVEL% == 0 goto :GIT_UPDATE
|
|
call "%DEPOT_TOOLS_DIR%bootstrap\win_tools.bat"
|
|
if errorlevel 1 (
|
|
echo Error updating depot_tools - Git not found.
|
|
exit /b %ERRORLEVEL%
|
|
)
|
|
|
|
:GIT_UPDATE
|
|
:: Now clear errorlevel so it can be set by other programs later.
|
|
set errorlevel=
|
|
|
|
:: Make sure DEPOT_TOOLS_DIR is a git repo
|
|
IF NOT EXIST "%DEPOT_TOOLS_DIR%.git" (
|
|
echo Error: Your depot_tools directory does not appear to be a git repository, and cannot be updated.
|
|
echo Consider deleting your depot_tools directory and following the instructions at https://www.chromium.org/developers/how-tos/install-depot-tools/ to reinstall it.
|
|
exit /b 1
|
|
)
|
|
|
|
cd /d "%DEPOT_TOOLS_DIR%."
|
|
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%
|
|
)
|
|
|
|
:: Sync CIPD and CIPD client tools.
|
|
call "%~dp0\cipd_bin_setup.bat"
|
|
|
|
:: Update python and generate git wrappers.
|
|
call "%DEPOT_TOOLS_DIR%bootstrap\win_tools.bat"
|