Commit 2188fe94 authored by Robert Iannucci's avatar Robert Iannucci Committed by Commit Bot

Add cipd bootstrap scripts to depot_tools.

This takes advantage of powershell on windows for a cleanish duplicate of the
posix version.

R=dnj@chromium.org, vadimsh@chromium.org
BUG=663843

Change-Id: Ib23a044ff912e3239b58848a26143eb6575826d5
Reviewed-on: https://chromium-review.googlesource.com/414228
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: 's avatarVadim Shtayura <vadimsh@chromium.org>
parent cbec8efc
# Ignore any python bytecode.
*.pyc
# ignore cipd client files
/.cipd_client*
/.versions
# Ignore the batch files produced by the Windows bootstrapping.
/git-bash
/git.bat
......
#!/bin/bash -e
# Copyright (c) 2016 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.
MYPATH=$(dirname "${BASH_SOURCE[0]}")
: ${CIPD_CLIENT_VER:=`cat $MYPATH/cipd_client_version`}
: ${CIPD_CLIENT_SRV:='https://chrome-infra-packages.appspot.com'}
UNAME=`uname -s | tr '[:upper:]' '[:lower:]'`
case $UNAME in
linux)
PLAT=linux
;;
cygwin*|msys*|mingw*)
PLAT=windows
;;
darwin)
PLAT=mac
;;
*)
echo "UNKNOWN OS: $UNAME"
exit 1
esac
UNAME=`uname -m | tr '[:upper:]' '[:lower:]'`
case $UNAME in
x86_64|amd64)
ARCH=amd64
;;
arm*)
ARCH=$UNAME
;;
*86)
ARCH=386
;;
*)
echo "UNKNOWN Machine architecture: $UNAME"
exit 1
esac
URL="$CIPD_CLIENT_SRV/client?platform=${PLAT}-${ARCH}&version=$CIPD_CLIENT_VER"
CLIENT="$MYPATH/.cipd_client"
USER_AGENT="depot_tools/$(git -C $MYPATH rev-parse HEAD 2>/dev/null || echo "???")"
if [ ! -e "$CLIENT" ]; then
echo "Bootstrapping cipd client for ${PLAT}-${ARCH}..."
echo "From $URL"
if hash curl 2> /dev/null ; then
curl "$URL" -A "$USER_AGENT" -L -o "$CLIENT"
chmod +x "$CLIENT"
else
echo Your platform is missing the \`curl\` command. Please use your package
echo manager to install it before continuing.
echo
echo Alternately, manually download:
echo "$URL"
echo To $CLIENT, and then re-run this command.
exit 1
fi
fi
export CIPD_HTTP_USER_AGENT_PREFIX=$USER_AGENT
if ! "$CLIENT" selfupdate -version "$CIPD_CLIENT_VER" ; then
echo -n "selfupdate failed: " 1>&2
echo "run \`CIPD_HTTP_USER_AGENT_PREFIX=$USER_AGENT/manual $CLIENT selfupdate -version '$CIPD_CLIENT_VER'\` to diagnose" 1>&2
echo "" 1>&2
fi
exec "$CLIENT" "${@}"
@echo off
:: Copyright (c) 2016 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.
powershell -NoProfile -ExecutionPolicy RemoteSigned -File "%~dp0\cipd.ps1" %*
# Copyright (c) 2016 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.
$myPath = Split-Path $MyInvocation.MyCommand.Path -Parent
function GetEnvVar([string] $key, [scriptblock] $defaultFn) {
if (Test-Path "Env:\$key") {
return Get-ChildItem $Env $key
}
return $defaultFn.Invoke()
}
$cipdClientVer = GetEnvVar "CIPD_CLIENT_VER" {
Get-Content (Join-Path $myPath -ChildPath 'cipd_client_version') -First 1
}
$cipdClientSrv = GetEnvVar "CIPD_CLIENT_SRV" {
"https://chrome-infra-packages.appspot.com"
}
$plat="windows"
if ([environment]::Is64BitOperatingSystem) {
$arch="amd64"
} else {
$arch="386"
}
$url = "$cipdClientSrv/client?platform=$plat-$arch&version=$cipdClientVer"
$client = Join-Path $myPath -ChildPath ".cipd_client.exe"
$depot_tools_version = &git -C $myPath rev-parse HEAD 2>&1
if ($LastExitCode -eq 0) {
$user_agent = "depot_tools/$depot_tools_version"
} else {
$user_agent = "depot_tools/???"
}
$Env:CIPD_HTTP_USER_AGENT_PREFIX = $user_agent
if (!(Test-Path $client)) {
echo "Bootstrapping cipd client for $plat-$arch..."
echo "From $url"
# TODO(iannucci): It would be really nice if there was a way to get this to
# show progress without also completely destroying the download speed, but
# I can't seem to find a way to do it. Patches welcome :)
$wc = (New-Object System.Net.WebClient)
$wc.Headers.add('User-Agent', $user_agent)
$wc.DownloadFile($url, $client)
}
$_ = & $client selfupdate -version "$cipdClientVer"
if ($LastExitCode -ne 0) {
Write-Host "selfupdate failed: " -ForegroundColor Red -NoNewline
Write-Host "run ``set CIPD_HTTP_USER_AGENT_PREFIX=$user_agent/manual && $client selfupdate -version $cipdClientVer`` to diagnose`n" -ForegroundColor White
}
& $client @args
exit $LastExitCode
git_revision:05844bd9d1200cba8449b936b76e25eb90eabe25
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment