#!/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

# Export for other depot_tools scripts to re-use.
export DEPOT_TOOLS_DIR="${DEPOT_TOOLS_DIR:-$(dirname "$0")}"
export DEPOT_TOOLS_UNAME_S="${DEPOT_TOOLS_UNAME_S:-$(uname -s | tr '[:upper:]' '[:lower:]')}"

source "${DEPOT_TOOLS_DIR}/cipd_bin_setup.sh"
cipd_bin_setup &> /dev/null

# Don't pass this to the Python script as it might turn around and run commands
# in other depot_tools dirs.
base_dir="${DEPOT_TOOLS_DIR}"
unset DEPOT_TOOLS_DIR
case "${DEPOT_TOOLS_UNAME_S}" in
mingw*|cygwin*)
  cmd.exe //c $0.bat "$@"
  ;;
*)
  exec "${base_dir}/.cipd_bin/vpython3" "$@"
  ;;
esac
