diff options
| author | Steve Kowalik <steven@wedontsleep.org> | 2016-02-16 16:01:54 +1100 |
|---|---|---|
| committer | Steve Kowalik <steven@wedontsleep.org> | 2016-02-16 16:01:54 +1100 |
| commit | 69175b941a74a4e2f37b856437b3ca20bc2f240a (patch) | |
| tree | e0349b731b724c76963f9fd429f53b22cbf142d3 /setuptools/launch.py | |
| parent | 43d0308ad6a8c83be645b09e8c1871b36ff3c4c9 (diff) | |
| parent | 8ccd428cd2a733891bffce13e017774ea82bd8d2 (diff) | |
| download | python-setuptools-git-69175b941a74a4e2f37b856437b3ca20bc2f240a.tar.gz | |
Merge from master, resolving conflicts.
Diffstat (limited to 'setuptools/launch.py')
| -rw-r--r-- | setuptools/launch.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/setuptools/launch.py b/setuptools/launch.py new file mode 100644 index 00000000..06e15e1e --- /dev/null +++ b/setuptools/launch.py @@ -0,0 +1,35 @@ +""" +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() |
