diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2016-04-04 08:32:28 -0400 |
|---|---|---|
| committer | Jason R. Coombs <jaraco@jaraco.com> | 2016-04-04 08:32:28 -0400 |
| commit | 48b63f309650af9e43368cf0d6792ea247ad8663 (patch) | |
| tree | 1c9bbeda525f231bd671c9e9f7ea3c3eedcb5854 /setuptools/launch.py | |
| parent | 1bf92e3a3cc1e246b1ecc05c63287bb177939efa (diff) | |
| parent | 9803058dc72867605bdac20d41249c00e8eae415 (diff) | |
| download | python-setuptools-git-48b63f309650af9e43368cf0d6792ea247ad8663.tar.gz | |
Merge with master
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() |
