#!/usr/bin/env bash

# Copyright 2019 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.

if [[ $VPYTHON_BYPASS == "manually managed python not supported by chrome operations" ]]
then
  NEWARGS=()
  while [[ $# -gt 0 ]]
  do
    case "$1" in
      -vpython-tool*) # these tools all do something vpython related and quit
        exit 0
        ;;
      -vpython*=*) # delete any vpython-specific flag (w/ attached argument)
        shift
        ;;
      -vpython*) # delete any vpython-specific flag (w/ separate argument)
        shift
        shift
        ;;
      --)     # stop parsing
        NEWARGS+=( "$@" )
        break
        ;;
      *)      # regular arg
        NEWARGS+=( "$1" )
        shift
        ;;
    esac
  done
  exec "python3" "${NEWARGS[@]}"
fi


base_dir=$(dirname "$0")

source "$base_dir/cipd_bin_setup.sh"
cipd_bin_setup &> /dev/null

# If Python bootstrapping is not disabled, make sure Python has been
# bootstrapped and add it to the front of PATH.
if [[ $MINGW != 0 && $DEPOT_TOOLS_BOOTSTRAP_PYTHON3 != 0 ]]; then
  if [[ ! -e $base_dir/python3_bin_reldir.txt ]]; then
    source "$base_dir/bootstrap_python3"
    bootstrap_python3
  fi
  PYTHON3_BIN_RELDIR="$base_dir/$(cat $base_dir/python3_bin_reldir.txt | xargs echo)"
  PATH="$PYTHON3_BIN_RELDIR":"$PYTHON3_BIN_RELDIR/Scripts":"$PATH"
fi

exec "$base_dir/.cipd_bin/vpython3" "$@"
