35 lines
787 B
Python
35 lines
787 B
Python
"""
|
|
Launch the Python script on the command line after
|
|
setuptools is bootstrapped via import.
|
|
"""
|
|
|
|
# Note that setuptools gets imported implicitly by the
|
|
# invocation of this script using python -m setuptools.launch
|
|
|
|
import tokenize
|
|
import sys
|
|
|
|
|
|
def run():
|
|
"""
|
|
Run the script in sys.argv[1] as if it had
|
|
been invoked naturally.
|
|
"""
|
|
__builtins__
|
|
script_name = sys.argv[1]
|
|
namespace = dict(
|
|
__file__=script_name,
|
|
__name__='__main__',
|
|
__doc__=None,
|
|
)
|
|
sys.argv[:] = sys.argv[1:]
|
|
|
|
open_ = getattr(tokenize, 'open', open)
|
|
script = open_(script_name).read()
|
|
norm_script = script.replace('\\r\\n', '\\n')
|
|
code = compile(norm_script, script_name, 'exec')
|
|
exec(code, namespace)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
run()
|