diff options
| author | Josh Stone <jistone@redhat.com> | 2022-08-12 15:39:26 -0700 |
|---|---|---|
| committer | Josh Stone <jistone@redhat.com> | 2022-08-12 15:39:26 -0700 |
| commit | de8dedb0a524208e4856e80c22bc7f47df2fd91a (patch) | |
| tree | 77cd17c0284a6954a1993ec7041c52203af24ea1 /x | |
| parent | f22819bcce4abaff7d1246a56eec493418f9f4ee (diff) | |
| download | rust-de8dedb0a524208e4856e80c22bc7f47df2fd91a.tar.gz rust-de8dedb0a524208e4856e80c22bc7f47df2fd91a.zip | |
Use an extensionless `x` script for non-Windows
Diffstat (limited to 'x')
| -rwxr-xr-x | x | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/x b/x new file mode 100755 index 00000000000..704d0f791f3 --- /dev/null +++ b/x @@ -0,0 +1,33 @@ +#!/bin/sh + +# Modern Linux and macOS systems commonly only have a thing called `python3` and +# not `python`, while Windows commonly does not have `python3`, so we cannot +# directly use python in the x.py shebang and have it consistently work. Instead we +# have a shell script to look for a python to run x.py. + +set -eu + +realpath() { + if [ -d "$1" ]; then + CDPATH='' command cd "$1" && pwd -P + else + echo "$(realpath "$(dirname "$1")")/$(basename "$1")" + fi +} + +xpy=$(dirname "$(realpath "$0")")/x.py + +# On Windows, `py -3` sometimes works. We need to try it first because `python3` +# sometimes tries to launch the app store on Windows. +for SEARCH_PYTHON in py python3 python python2; do + if python=$(command -v $SEARCH_PYTHON) && [ -x "$python" ]; then + if [ $SEARCH_PYTHON = py ]; then + extra_arg="-3" + else + extra_arg="" + fi + exec "$python" $extra_arg "$xpy" "$@" + fi +done +echo "$0: error: did not find python installed" >&2 +exit 1 |
