| Index: native_client_sdk/src/tools/run.py
|
| diff --git a/native_client_sdk/src/tools/run.py b/native_client_sdk/src/tools/run.py
|
| index 441cc1f5669aca96ef9d7a32df827e94ad648c7a..b0131c5e428912556b60d9ed003ce979c41d313b 100755
|
| --- a/native_client_sdk/src/tools/run.py
|
| +++ b/native_client_sdk/src/tools/run.py
|
| @@ -3,13 +3,17 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| -"""Launch a local server on an ephemeral port, then launch a executable that
|
| -points to that server.
|
| +"""Launch a local http server, then launch a executable directed at the server.
|
| +
|
| +This command creates a local server (on port 5103 by default) then runs:
|
| + <executable> <args..> http://localhost:<port>/<page>.
|
| +
|
| +Where <page> can be set by -P, or uses index.html by default.
|
| """
|
|
|
| +import argparse
|
| import copy
|
| import getos
|
| -import optparse
|
| import os
|
| import subprocess
|
| import sys
|
| @@ -22,30 +26,24 @@ if sys.version_info < (2, 7, 0):
|
|
|
|
|
| def main(args):
|
| - usage = """usage: %prog [options] -- executable args...
|
| -
|
| - This command creates a local server on an ephemeral port, then runs:
|
| - <executable> <args..> http://localhost:<port>/<page>.
|
| -
|
| - Where <page> can be set by -P, or uses index.html by default."""
|
| - parser = optparse.OptionParser(usage)
|
| - parser.add_option('-C', '--serve-dir',
|
| + parser = argparse.ArgumentParser(description=__doc__)
|
| + parser.add_argument('-C', '--serve-dir',
|
| help='Serve files out of this directory.',
|
| dest='serve_dir', default=os.path.abspath('.'))
|
| - parser.add_option('-P', '--path', help='Path to load from local server.',
|
| + parser.add_argument('-P', '--path', help='Path to load from local server.',
|
| dest='path', default='index.html')
|
| - parser.add_option('-D',
|
| + parser.add_argument('-D',
|
| help='Add debug command-line when launching the chrome debug.',
|
| dest='debug', action='append', default=[])
|
| - parser.add_option('-E',
|
| + parser.add_argument('-E',
|
| help='Add environment variables when launching the executable.',
|
| dest='environ', action='append', default=[])
|
| - parser.add_option('-p', '--port',
|
| + parser.add_argument('-p', '--port',
|
| help='Port to run server on. Default is 5103, ephemeral is 0.',
|
| - type='int', default=5103)
|
| - options, args = parser.parse_args(args)
|
| - if not args:
|
| - parser.error('No executable given.')
|
| + type=int, default=5103)
|
| + parser.add_argument('executable', help='command to run')
|
| + parser.add_argument('args', nargs='*', help='arguments for executable')
|
| + options = parser.parse_args(args)
|
|
|
| # 0 means use an ephemeral port.
|
| server = httpd.LocalHTTPServer(options.serve_dir, options.port)
|
| @@ -56,7 +54,7 @@ def main(args):
|
| key, value = map(str.strip, e.split('='))
|
| env[key] = value
|
|
|
| - cmd = args + [server.GetURL(options.path)]
|
| + cmd = [options.executable] + options.args + [server.GetURL(options.path)]
|
| print 'Running: %s...' % (' '.join(cmd),)
|
| process = subprocess.Popen(cmd, env=env)
|
|
|
|
|