cipd: allow overriding the location of where cipd binary is installed

Bug: 360140318
Change-Id: I384ffe511a1f05df244cdd282cd1702c242f3380
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5797338
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Yiwei Zhang <yiwzhang@google.com>
changes/38/5797338/3
Yiwei Zhang 11 months ago committed by LUCI CQ
parent 04a2e71a92
commit 2aba33b703

24
cipd

@ -16,7 +16,6 @@ fi
export DEPOT_TOOLS_DIR="${DEPOT_TOOLS_DIR:-$(dirname "${BASH_SOURCE[0]}")}"
export DEPOT_TOOLS_UNAME_S="${DEPOT_TOOLS_UNAME_S:-$(uname -s | tr '[:upper:]' '[:lower:]')}"
MYPATH="${DEPOT_TOOLS_DIR}"
CYGWIN=false
# Make sure this starts empty
@ -89,18 +88,25 @@ fi
# CIPD_BACKEND can be changed to ...-dev for manual testing.
CIPD_BACKEND="https://chrome-infra-packages.appspot.com"
VERSION_FILE="${MYPATH}/cipd_client_version"
CLIENT="${MYPATH}/.cipd_client"
VERSION_FILE="${DEPOT_TOOLS_DIR}/cipd_client_version"
CIPD_ROOT="${DEPOT_TOOLS_DIR}"
# value in .cipd_client_root file overrides the default root.
CIPD_ROOT_OVERRIDE_FILE="${DEPOT_TOOLS_DIR}/.cipd_client_root"
if [ -f "${CIPD_ROOT_OVERRIDE_FILE}" ]; then
CIPD_ROOT=$(<"${CIPD_ROOT_OVERRIDE_FILE}")
mkdir -p "${CIPD_ROOT}"
fi
CLIENT="${CIPD_ROOT}/.cipd_client"
PLATFORM="${OS}-${ARCH}"
# A value in .cipd_client_platform overrides the "guessed" platform.
PLATFORM_OVERRIDE_FILE="${MYPATH}/.cipd_client_platform"
PLATFORM_OVERRIDE_FILE="${DEPOT_TOOLS_DIR}/.cipd_client_platform"
if [ -f "${PLATFORM_OVERRIDE_FILE}" ]; then
PLATFORM=$(<"${PLATFORM_OVERRIDE_FILE}")
fi
USER_AGENT="depot_tools/$(git -C ${MYPATH} rev-parse HEAD 2>/dev/null || echo "???")"
USER_AGENT="depot_tools/$(git -C ${DEPOT_TOOLS_DIR} rev-parse HEAD 2>/dev/null || echo "???")"
# calc_sha256 is "portable" variant of sha256sum. It uses sha256sum when
@ -174,8 +180,8 @@ function clean_bootstrap() {
#
# This wonky tempdir method works on Linux and Mac.
local CIPD_CLIENT_TMP=$(\
mktemp -p "${MYPATH}" 2>/dev/null || \
mktemp "${MYPATH}/.cipd_client.XXXXXXX")
mktemp -p "${CIPD_ROOT}" 2>/dev/null || \
mktemp "${CIPD_ROOT}/.cipd_client.XXXXXXX")
if hash curl 2> /dev/null ; then
curl "${URL}" -s --show-error -f --retry 3 --retry-delay 5 -A "${USER_AGENT}" -L -o "${CIPD_CLIENT_TMP}"
@ -233,7 +239,7 @@ function self_update() {
# crudely search for a CIPD client package name in the .cipd_version JSON file.
# It has only "instance_id" as the other field (looking like a base64 string),
# so mismatches are very unlikely.
INSTALLED_VERSION_FILE="${MYPATH}/.versions/.cipd_client.cipd_version"
INSTALLED_VERSION_FILE="${CIPD_ROOT}/.versions/.cipd_client.cipd_version"
if [ -f "${INSTALLED_VERSION_FILE}" ]; then
JSON_BODY=$(<"${INSTALLED_VERSION_FILE}")
if [[ "$JSON_BODY" != *"infra/tools/cipd/${PLATFORM}"* ]]; then

Loading…
Cancel
Save