#!/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 [[ $(uname -s) = MINGW* || $(uname -s) = CYGWIN* ]]; then
  cmd.exe //c $0.bat "$@"
elif [[ $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)"
  exec "$base_dir/.cipd_bin/vpython3" -vpython-interpreter  "$PYTHON3_BIN_RELDIR/python3" "$@"
else
  exec "$base_dir/.cipd_bin/vpython3" "$@"
fi
