Split runner entrypoint from default local runner.

master
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
gevent.monkey.patch_all()
import gevent.monkey; gevent.monkey.patch_all()
import logging
handler = logging.StreamHandler()
@ -7,38 +6,59 @@ log_format = '{levelname}:etiquette.{module}.{funcName}: {message}'
handler.setFormatter(logging.Formatter(log_format, style='{'))
logging.getLogger().addHandler(handler)
import etiquette_flask
import gevent.pywsgi
import gevent.wsgi
import argparse
import sys
import etiquette_flask_entrypoint
import werkzeug.contrib.fixers
etiquette_flask.site.wsgi_app = werkzeug.contrib.fixers.ProxyFix(etiquette_flask.site.wsgi_app)
site = etiquette_flask_entrypoint.site
def run(port=None, use_https=None):
if port is None:
port = 5000
else:
port = int(port)
if len(sys.argv) >= 2:
port = int(sys.argv[1])
else:
port = 5000
if use_https is None:
use_https = port == 443
use_https = (port == 443) or ('--https' in sys.argv)
if use_https:
http = gevent.pywsgi.WSGIServer(
listener=('0.0.0.0', port),
application=etiquette_flask.site,
keyfile='D:\\git\\etiquette\\frontends\\etiquette_flask\\https\\etiquette.key',
certfile='D:\\git\\etiquette\\frontends\\etiquette_flask\\https\\etiquette.crt',
)
else:
http = gevent.pywsgi.WSGIServer(
listener=('0.0.0.0', port),
application=etiquette_flask.site,
)
if use_https:
http = gevent.pywsgi.WSGIServer(
listener=('0.0.0.0', port),
application=site,
keyfile='D:\\git\\etiquette\\frontends\\etiquette_flask\\https\\etiquette.key',
certfile='D:\\git\\etiquette\\frontends\\etiquette_flask\\https\\etiquette.crt',
)
else:
http = gevent.pywsgi.WSGIServer(
listener=('0.0.0.0', port),
application=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
if use_https:
message += ' (https)'
print(message)
http.serve_forever()
def run_argparse(args):
return run(port=args.port, use_https=args.use_https)
def main(argv):
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:]))