#!/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.
  "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
}
