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.
155 lines
5.5 KiB
Batchfile
155 lines
5.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 script will try to find if svn and python are accessible and it not,
|
|
:: it will try to download it and 'install' it in depot_tools.
|
|
|
|
:: Sadly, we can't use SETLOCAL here otherwise it ERRORLEVEL is not correctly
|
|
:: returned.
|
|
|
|
set WIN_TOOLS_ROOT_URL=http://src.chromium.org/svn/trunk/tools
|
|
set GIT_BIN_DIR=git-1.8.0_bin
|
|
|
|
:: Get absolute root directory (.js scripts don't handle relative paths well).
|
|
pushd %~dp0..\..
|
|
set WIN_TOOLS_ROOT_DIR=%CD%
|
|
popd
|
|
|
|
if "%1" == "force" (
|
|
set WIN_TOOLS_FORCE=1
|
|
shift /1
|
|
)
|
|
|
|
|
|
:GIT_CHECK
|
|
:: If the batch file exists, skip the git check.
|
|
if exist "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%" goto :MSYS_PATH_CHECK
|
|
if "%CHROME_HEADLESS%" == "1" goto :SVN_CHECK
|
|
if "%WIN_TOOLS_FORCE%" == "1" goto :GIT_INSTALL
|
|
call git --version 2>nul 1>nul
|
|
if errorlevel 1 goto :GIT_INSTALL
|
|
goto :SVN_CHECK
|
|
|
|
|
|
:MSYS_PATH_CHECK
|
|
call find "mingw" "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%\cmd\git.cmd" 2>nul 1>nul
|
|
if errorlevel 1 goto :SVN_CHECK
|
|
rmdir /S /Q "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%"
|
|
|
|
|
|
:GIT_INSTALL
|
|
echo Installing git (avg 1-2 min download) ...
|
|
:: git is not accessible; check it out and create 'proxy' files.
|
|
if exist "%~dp0git.zip" del "%~dp0git.zip"
|
|
cscript //nologo //e:jscript "%~dp0get_file.js" %WIN_TOOLS_ROOT_URL%/third_party/git-1.8.0_bin.zip "%~dp0git.zip"
|
|
if errorlevel 1 goto :GIT_FAIL
|
|
:: Cleanup svn directory if it was existing.
|
|
if exist "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%\." rd /q /s "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%"
|
|
:: Will create %GIT_BIN_DIR%\...
|
|
cscript //nologo //e:jscript "%~dp0unzip.js" "%~dp0git.zip" "%WIN_TOOLS_ROOT_DIR%"
|
|
if errorlevel 1 goto :GIT_FAIL
|
|
if not exist "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%\." goto :GIT_FAIL
|
|
del "%~dp0git.zip"
|
|
:: Create the batch files.
|
|
call copy /y "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%\git.bat" "%WIN_TOOLS_ROOT_DIR%\git.bat" 1>nul
|
|
call copy /y "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%\gitk.bat" "%WIN_TOOLS_ROOT_DIR%\gitk.bat" 1>nul
|
|
call copy /y "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%\ssh.bat" "%WIN_TOOLS_ROOT_DIR%\ssh.bat" 1>nul
|
|
call copy /y "%WIN_TOOLS_ROOT_DIR%\%GIT_BIN_DIR%\ssh-keygen.bat" "%WIN_TOOLS_ROOT_DIR%\ssh-keygen.bat" 1>nul
|
|
:: Ensure autocrlf and filemode are set correctly.
|
|
call "%WIN_TOOLS_ROOT_DIR%\git.bat" config --global core.autocrlf false
|
|
call "%WIN_TOOLS_ROOT_DIR%\git.bat" config --global core.filemode false
|
|
goto :SVN_CHECK
|
|
|
|
|
|
:GIT_FAIL
|
|
echo ... Failed to checkout git automatically.
|
|
echo Please visit http://code.google.com/p/msysgit to download the latest git
|
|
echo client before continuing.
|
|
echo You can also get the "prebacked" version used at %WIN_TOOLS_ROOT_URL%/
|
|
set ERRORLEVEL=1
|
|
goto :END
|
|
|
|
|
|
:SVN_CHECK
|
|
:: If the batch file exists, skip the svn check.
|
|
if exist "%WIN_TOOLS_ROOT_DIR%\svn.bat" goto :PYTHON_CHECK
|
|
if "%WIN_TOOLS_FORCE%" == "1" goto :SVN_INSTALL
|
|
call svn --version 2>nul 1>nul
|
|
if errorlevel 1 goto :SVN_INSTALL
|
|
goto :PYTHON_CHECK
|
|
|
|
|
|
:SVN_INSTALL
|
|
echo Installing subversion ...
|
|
:: svn is not accessible; check it out and create 'proxy' files.
|
|
if exist "%~dp0svn.zip" del "%~dp0svn.zip"
|
|
cscript //nologo //e:jscript "%~dp0get_file.js" %WIN_TOOLS_ROOT_URL%/third_party/svn_bin.zip "%~dp0svn.zip"
|
|
if errorlevel 1 goto :SVN_FAIL
|
|
:: Cleanup svn directory if it was existing.
|
|
if exist "%WIN_TOOLS_ROOT_DIR%\svn\." rd /q /s "%WIN_TOOLS_ROOT_DIR%\svn"
|
|
if exist "%WIN_TOOLS_ROOT_DIR%\svn_bin\." rd /q /s "%WIN_TOOLS_ROOT_DIR%\svn_bin"
|
|
:: Will create svn_bin\...
|
|
cscript //nologo //e:jscript "%~dp0unzip.js" "%~dp0svn.zip" "%WIN_TOOLS_ROOT_DIR%"
|
|
if errorlevel 1 goto :SVN_FAIL
|
|
if not exist "%WIN_TOOLS_ROOT_DIR%\svn_bin\." goto :SVN_FAIL
|
|
del "%~dp0svn.zip"
|
|
:: Create the batch file.
|
|
call copy /y "%~dp0svn.new.bat" "%WIN_TOOLS_ROOT_DIR%\svn.bat" 1>nul
|
|
call copy /y "%~dp0svnversion.new.bat" "%WIN_TOOLS_ROOT_DIR%\svnversion.bat" 1>nul
|
|
goto :PYTHON_CHECK
|
|
|
|
|
|
:SVN_FAIL
|
|
echo ... Failed to checkout svn automatically.
|
|
echo Please visit http://subversion.tigris.org to download the latest subversion client
|
|
echo before continuing.
|
|
echo You can also get the "prebacked" version used at %WIN_TOOLS_ROOT_URL%/third_party/
|
|
set ERRORLEVEL=1
|
|
goto :END
|
|
|
|
|
|
:PYTHON_CHECK
|
|
:: If the batch file exists, skip the python check.
|
|
set ERRORLEVEL=0
|
|
if exist "%WIN_TOOLS_ROOT_DIR%\python.bat" goto :END
|
|
if "%WIN_TOOLS_FORCE%" == "1" goto :PYTHON_INSTALL
|
|
call python --version 2>nul 1>nul
|
|
if errorlevel 1 goto :PYTHON_INSTALL
|
|
|
|
:: We are done.
|
|
set ERRORLEVEL=0
|
|
goto :END
|
|
|
|
|
|
:PYTHON_INSTALL
|
|
echo Installing python ...
|
|
:: Cleanup python directory if it was existing.
|
|
if exist "%WIN_TOOLS_ROOT_DIR%\python_bin\." rd /q /s "%WIN_TOOLS_ROOT_DIR%\python_bin"
|
|
call svn co -q %WIN_TOOLS_ROOT_URL%/third_party/python_26 "%WIN_TOOLS_ROOT_DIR%\python_bin"
|
|
if errorlevel 1 goto :PYTHON_FAIL
|
|
:: Create the batch files.
|
|
call copy /y "%~dp0python.new.bat" "%WIN_TOOLS_ROOT_DIR%\python.bat" 1>nul
|
|
call copy /y "%~dp0pylint.new.bat" "%WIN_TOOLS_ROOT_DIR%\pylint.bat" 1>nul
|
|
set ERRORLEVEL=0
|
|
goto :END
|
|
|
|
|
|
:PYTHON_FAIL
|
|
echo ... Failed to checkout python automatically.
|
|
echo Please visit http://python.org to download the latest python 2.x client before
|
|
echo continuing.
|
|
echo You can also get the "prebacked" version used at %WIN_TOOLS_ROOT_URL%/third_party/
|
|
set ERRORLEVEL=1
|
|
goto :END
|
|
|
|
|
|
:returncode
|
|
set WIN_TOOLS_ROOT_URL=
|
|
set WIN_TOOLS_ROOT_DIR=
|
|
exit /b %ERRORLEVEL%
|
|
|
|
:END
|
|
call :returncode %ERRORLEVEL%
|