Files
chromium_depot_tools/bootstrap_python3
Brian Norris a1b3db589f bootstrap_python3: Find 'cipd' in base_dir, not PATH
There might be multiple copies of depot_tools involved, and it might not
even be on PATH.

This matches the pattern of various other setup/bootstrap scripts (e.g.,
cipd_bin_setup.sh).

BUG=none
TEST=`.../ensure_bootstrap` without being on PATH

Change-Id: Ic9135298629726e69619d259af110684d017d0f6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4377789
Commit-Queue: Brian Norris <briannorris@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
2023-03-29 22:20:34 +00:00

36 lines
992 B
Bash

#!/usr/bin/env bash
function bootstrap_python3 {
base_dir=$(dirname "${BASH_SOURCE[0]}")
cd "${base_dir}"
if [ -e ".bleeding_edge" ]; then
CIPD_MANIFEST="bootstrap/manifest_bleeding_edge.txt"
else
CIPD_MANIFEST="bootstrap/manifest.txt"
fi
while IFS= read -r line; do
if [[ $line =~ ^[^#].*cpython3/.*version:(.*)$ ]]; then
PYTHON3_VERSION=${BASH_REMATCH[1]}
PYTHON3_VERSION=${PYTHON3_VERSION//[[:space:]]/}
fi
done < $CIPD_MANIFEST
if [ "X$PYTHON3_VERSION" == "X" ]; then
echo Could not extract Python 3 version from manifest.
return 1
fi
BOOTSTRAP_PATH="bootstrap-${PYTHON3_VERSION}_bin"
# Install CIPD packages. The CIPD client self-bootstraps.
"$base_dir/cipd" ensure -log-level warning -ensure-file "${CIPD_MANIFEST}" \
-root "$BOOTSTRAP_PATH"
BOOTSTRAP_PYTHON_BIN="${BOOTSTRAP_PATH}/python3/bin/python3"
"$BOOTSTRAP_PYTHON_BIN" "bootstrap/bootstrap.py" --bootstrap-name "$BOOTSTRAP_PATH"
cd - > /dev/null
}