aboutsummaryrefslogtreecommitdiff
path: root/python/private/autodetecting_toolchain_interpreter.sh
diff options
context:
space:
mode:
Diffstat (limited to 'python/private/autodetecting_toolchain_interpreter.sh')
-rw-r--r--python/private/autodetecting_toolchain_interpreter.sh57
1 files changed, 0 insertions, 57 deletions
diff --git a/python/private/autodetecting_toolchain_interpreter.sh b/python/private/autodetecting_toolchain_interpreter.sh
deleted file mode 100644
index 5c8a10d..0000000
--- a/python/private/autodetecting_toolchain_interpreter.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-
-# Don't set -e because we don't have robust trapping and printing of errors.
-set -u
-
-# We use /bin/sh rather than /bin/bash for portability. See discussion here:
-# https://groups.google.com/forum/?nomobile=true#!topic/bazel-dev/4Ql_7eDcLC0
-# We do lose the ability to set -o pipefail.
-
-FAILURE_HEADER="\
-Error occurred while attempting to use the default Python toolchain \
-(@rules_python//python:autodetecting_toolchain)."
-
-die() {
- echo "$FAILURE_HEADER" 1>&2
- echo "$1" 1>&2
- exit 1
-}
-
-# We use `which` to locate the Python interpreter command on PATH. `command -v`
-# is another option, but it doesn't check whether the file it finds has the
-# executable bit.
-#
-# A tricky situation happens when this wrapper is invoked as part of running a
-# tool, e.g. passing a py_binary target to `ctx.actions.run()`. Bazel will unset
-# the PATH variable. Then the shell will see there's no PATH and initialize its
-# own, sometimes without exporting it. This causes `which` to fail and this
-# script to think there's no Python interpreter installed. To avoid this we
-# explicitly pass PATH to each `which` invocation. We can't just export PATH
-# because that would modify the environment seen by the final user Python
-# program.
-#
-# See also:
-#
-# https://github.com/bazelbuild/continuous-integration/issues/578
-# https://github.com/bazelbuild/bazel/issues/8414
-# https://github.com/bazelbuild/bazel/issues/8415
-
-# Try the "python3" command name first, then fall back on "python".
-PYTHON_BIN="$(PATH="$PATH" which python3 2> /dev/null)"
-if [ -z "${PYTHON_BIN:-}" ]; then
- PYTHON_BIN="$(PATH="$PATH" which python 2>/dev/null)"
-fi
-if [ -z "${PYTHON_BIN:-}" ]; then
- die "Neither 'python3' nor 'python' were found on the target \
-platform's PATH, which is:
-
-$PATH
-
-Please ensure an interpreter is available on this platform (and marked \
-executable), or else register an appropriate Python toolchain as per the \
-documentation for py_runtime_pair \
-(https://github.com/bazelbuild/rules_python/blob/master/docs/python.md#py_runtime_pair)."
-fi
-
-exec "$PYTHON_BIN" "$@"
-