Index: cms/bin/test_server.py |
=================================================================== |
--- a/cms/bin/test_server.py |
+++ b/cms/bin/test_server.py |
@@ -18,6 +18,7 @@ |
import mimetypes |
import os |
import sys |
+import argparse |
import jinja2 |
@@ -26,6 +27,8 @@ |
from cms.converters import converters |
source = None |
+address = 'localhost' |
+port = '5000' |
UNICODE_ENCODING = "utf-8" |
@@ -65,7 +68,7 @@ |
for format in converters.iterkeys(): |
for p in (page, alternative_page): |
if source.has_page(p, format): |
- return (p, process_page(source, locale, p, format, "http://127.0.0.1:5000")) |
+ return (p, process_page(source, locale, p, format, "http://" + address + ":" + str(port))) |
if source.has_localizable_file(locale, page): |
return (page, source.read_localizable_file(locale, page)) |
@@ -99,6 +102,7 @@ |
yield fragment.encode(UNICODE_ENCODING) |
def handler(environ, start_response): |
+ |
path = environ.get("PATH_INFO") |
data = get_data(path) |
@@ -115,12 +119,23 @@ |
return [data] |
if __name__ == "__main__": |
- if len(sys.argv) < 2: |
- source = FileSource(os.curdir) |
- elif os.path.isdir(sys.argv[1]): |
- source = FileSource(sys.argv[1]) |
- else: |
- sys.exit("Usage: %s [source_dir]" % sys.argv[0]) |
+ |
+ parser = argparse.ArgumentParser(description='CMS testing server.') |
+ parser.add_argument('path', nargs='?', default=os.curdir) |
+ parser.add_argument('-n', '--address', default='localhost', help='Address of the interface the server will listen to.') |
+ parser.add_argument('-p', '--port', type=int, default=5000, help='Port number.') |
+ parser.add_argument('-l', '--listen', help='Address and port number separated by a semicolin. See help for address and port number for more information.') |
+ args = parser.parse_args() |
+ |
+ source = FileSource(args.path) |
+ address = args.address |
+ port = args.port |
+ |
+ if (args.listen): |
+ listen = str.split(args.listen, ':') |
+ if (len(listen) > 1): |
+ port = int(listen[1]) |
+ address = listen[0] |
try: |
from werkzeug.serving import ThreadedWSGIServer, run_simple |
@@ -158,4 +173,4 @@ |
print " * Running on http://%s:%i/" % server.server_address |
server.serve_forever() |
- run("localhost", 5000, handler, use_reloader=True, use_debugger=True) |
+ run(address, port, handler, use_reloader=True, use_debugger=True) |