]> git.lizzy.rs Git - rust.git/blob - x
Auto merge of #107843 - bjorn3:sync_cg_clif-2023-02-09, r=bjorn3
[rust.git] / x
1 #!/bin/sh
2
3 # Modern Linux and macOS systems commonly only have a thing called `python3` and
4 # not `python`, while Windows commonly does not have `python3`, so we cannot
5 # directly use python in the x.py shebang and have it consistently work. Instead we
6 # have a shell script to look for a python to run x.py.
7
8 set -eu
9
10 realpath() {
11     if [ -d "$1" ]; then
12         CDPATH='' command cd "$1" && pwd -P   
13     else
14         echo "$(realpath "$(dirname "$1")")/$(basename "$1")"
15     fi
16 }
17
18 xpy=$(dirname "$(realpath "$0")")/x.py
19
20 # On Windows, `py -3` sometimes works. We need to try it first because `python3`
21 # sometimes tries to launch the app store on Windows.
22 for SEARCH_PYTHON in py python3 python python2; do
23     if python=$(command -v $SEARCH_PYTHON) && [ -x "$python" ]; then
24         if [ $SEARCH_PYTHON = py ]; then
25             extra_arg="-3"
26         else
27             extra_arg=""
28         fi
29         exec "$python" $extra_arg "$xpy" "$@"
30     fi
31 done
32
33 python=$(bash -c "compgen -c python" | grep '^python[2-3]\.[0-9]\+$' | head -n1)
34 if ! [ "$python" = "" ]; then
35     exec "$python" "$xpy" "$@"
36 fi
37
38 echo "$0: error: did not find python installed" >&2
39 exit 1