Split runner entrypoint from default local runner.

This commit is contained in:
voussoir 2018-04-15 20:34:03 -07:00
parent 4434517c54
commit ed3b67bdb9
2 changed files with 55 additions and 27 deletions

View file

@ -0,0 +1,8 @@
import sys
import etiquette_flask
import werkzeug.contrib.fixers
etiquette_flask.site.wsgi_app = werkzeug.contrib.fixers.ProxyFix(etiquette_flask.site.wsgi_app)
site = etiquette_flask.site

View file

@ -1,5 +1,4 @@
import gevent.monkey import gevent.monkey; gevent.monkey.patch_all()
gevent.monkey.patch_all()
import logging import logging
handler = logging.StreamHandler() handler = logging.StreamHandler()
@ -7,38 +6,59 @@ log_format = '{levelname}:etiquette.{module}.{funcName}: {message}'
handler.setFormatter(logging.Formatter(log_format, style='{')) handler.setFormatter(logging.Formatter(log_format, style='{'))
logging.getLogger().addHandler(handler) logging.getLogger().addHandler(handler)
import etiquette_flask
import gevent.pywsgi import gevent.pywsgi
import gevent.wsgi import gevent.wsgi
import argparse
import sys import sys
import etiquette_flask_entrypoint
import werkzeug.contrib.fixers site = etiquette_flask_entrypoint.site
etiquette_flask.site.wsgi_app = werkzeug.contrib.fixers.ProxyFix(etiquette_flask.site.wsgi_app)
def run(port=None, use_https=None):
if port is None:
port = 5000
else:
port = int(port)
if len(sys.argv) >= 2: if use_https is None:
port = int(sys.argv[1]) use_https = port == 443
else:
port = 5000
use_https = (port == 443) or ('--https' in sys.argv) if use_https:
if use_https: http = gevent.pywsgi.WSGIServer(
http = gevent.pywsgi.WSGIServer( listener=('0.0.0.0', port),
listener=('0.0.0.0', port), application=site,
application=etiquette_flask.site, keyfile='D:\\git\\etiquette\\frontends\\etiquette_flask\\https\\etiquette.key',
keyfile='D:\\git\\etiquette\\frontends\\etiquette_flask\\https\\etiquette.key', certfile='D:\\git\\etiquette\\frontends\\etiquette_flask\\https\\etiquette.crt',
certfile='D:\\git\\etiquette\\frontends\\etiquette_flask\\https\\etiquette.crt', )
) else:
else: http = gevent.pywsgi.WSGIServer(
http = gevent.pywsgi.WSGIServer( listener=('0.0.0.0', port),
listener=('0.0.0.0', port), application=site,
application=etiquette_flask.site, )
)
message = f'Starting server on port {port}'
if use_https:
message += ' (https)'
print(message)
try:
http.serve_forever()
except KeyboardInterrupt:
pass
return 0
message = 'Starting server on port %d' % port def run_argparse(args):
if use_https: return run(port=args.port, use_https=args.use_https)
message += ' (https)'
print(message) def main(argv):
http.serve_forever() parser = argparse.ArgumentParser()
parser.add_argument(dest='port', nargs='?', default=None)
parser.add_argument('--https', dest='use_https', action='store_true', default=None)
parser.set_defaults(func=run_argparse)
args = parser.parse_args(argv)
args.func(args)
if __name__ == '__main__':
raise SystemExit(main(sys.argv[1:]))