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
|
||||
if sys.version_info[0] != 2 or sys.version_info[1] not in (6, 7):
|
||||
|
Loading…
x
Reference in New Issue
Block a user