Use an extensionless x
script for non-Windows
This commit is contained in:
parent
f22819bcce
commit
de8dedb0a5
6 changed files with 6 additions and 6 deletions
33
x
Executable file
33
x
Executable file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue