diff options
author | Aaron LI <aaronly.me@outlook.com> | 2016-10-30 16:09:27 +0800 |
---|---|---|
committer | Aaron LI <aaronly.me@outlook.com> | 2016-10-30 16:09:27 +0800 |
commit | e9c0f2aa8dc3d29c4c9c83f85744ce932230e130 (patch) | |
tree | 2b61bfa1ca1bcefecb8912d8dcf4fed4b5371014 /bin | |
parent | 90b877a2c785bb7691249d31e23138e0385001ae (diff) | |
download | fg21sim-e9c0f2aa8dc3d29c4c9c83f85744ce932230e130.tar.bz2 |
webui: Add "bin/fg21sim-webui" to start the UI server
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/fg21sim-webui | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/bin/fg21sim-webui b/bin/fg21sim-webui new file mode 100755 index 0000000..225aeed --- /dev/null +++ b/bin/fg21sim-webui @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +# -*- mode: python -*- +# +# Copyright (c) 2016 Weitian LI <liweitianux@live.com> +# MIT license + +""" +Start (and control) the Web user interface (UI) of "fg21sim", +which is based upon Tornado_ and uses WebSocket_. + +.. _Tornado: http://www.tornadoweb.org/ + +.. _WebSocket: https://en.wikipedia.org/wiki/WebSocket , + http://caniuse.com/#feat=websockets +""" + + +import os +import sys +import argparse +import logging + +import tornado.ioloop + +from fg21sim.configs import configs +from fg21sim.utils import setup_logging +from fg21sim.webui import make_application + + +def main(): + parser = argparse.ArgumentParser(description="Start the fg21sim Web UI") + parser.add_argument("-p", "--port", type=int, default=21127, + help="Tornado server listen port (default: 21127)") + parser.add_argument("-d", "--debug", action="store_true", + help="enable Tornado debug mode") + args = parser.parse_args() + + setup_logging(dict_config=configs.logging) + tool = os.path.basename(sys.argv[0]) + logger = logging.getLogger(tool) + logger.info("COMMAND: {0}".format(" ".join(sys.argv))) + + application = make_application(debug=args.debug) + application.listen(args.port) + logger.info("Tornado started on: {protocol}://{host}:{port}".format( + protocol="http", host="localhost", port=args.port)) + tornado.ioloop.IOLoop.current().start() + + +if __name__ == "__main__": + main() |