build: better support for python3 systems
Improve support for systems where `python` is actually `python3`. Not all systems have a `python2` binary, so simply updating the shebang won't work. What we can do is apply some cleverness: start life as a shell script, locate the python binary, then re-execute the script but this time as python code. Special care is taken to ensure that spaces in arguments are passed on verbatim. PR-URL: https://github.com/nodejs/node/pull/14737 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
This commit is contained in:
parent
772145674c
commit
c6da5c8cdf
13
configure
vendored
13
configure
vendored
@ -1,4 +1,15 @@
|
|||||||
#!/usr/bin/env python
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Locate python2 interpreter and re-execute the script. Note that the
|
||||||
|
# mix of single and double quotes is intentional, as is the fact that
|
||||||
|
# the ] goes on a new line.
|
||||||
|
_=[ 'exec' '/bin/sh' '-c' '''
|
||||||
|
which python2.7 >/dev/null && exec python2.7 "$0" "$@"
|
||||||
|
which python2 >/dev/null && exec python2 "$0" "$@"
|
||||||
|
exec python "$0" "$@"
|
||||||
|
''' "$0" "$@"
|
||||||
|
]
|
||||||
|
del _
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
if sys.version_info[0] != 2 or sys.version_info[1] not in (6, 7):
|
if sys.version_info[0] != 2 or sys.version_info[1] not in (6, 7):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user