#!/usr/bin/env bash

# Copyright 2019 The Chromium Authors
# 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:]')}"

# Don't write pyc files if running from a Cog workspace.
if [[ "$(pwd)" == "/google/cog/"* ]]; then
  export PYTHONDONTWRITEBYTECODE=1
fi

source "${DEPOT_TOOLS_DIR}/cipd_bin_setup.sh"
CIPD_ROOT=$(cipd_bin_setup) &> /dev/null

# Ensure that "depot_tools" is somewhere in PATH so standalone invocations can
# find "cipd" for on-demand Python exports, but allow other PATH manipulations
# to take priority.
base_dir_abs=$(CDPATH= cd -- "$DEPOT_TOOLS_DIR" 2>/dev/null && pwd -P || printf '%s' "$DEPOT_TOOLS_DIR")
export PATH="${PATH:+$PATH:}$base_dir_abs"

# Don't pass these to the Python script as it might turn around and run commands
# in other depot_tools dirs.
unset DEPOT_TOOLS_DIR base_dir_abs

# Exec the CIPD binary directly rather than routing "$@" through
# cmd.exe/vpython3.bat, which would re-parse the flattened command line with
# cmd.exe shell grammar (e.g. `a&b` runs `b`). MSYS/Cygwin resolve vpython3 to
# vpython3.exe automatically.
exec "$CIPD_ROOT/vpython3" "$@"
