Skip to content

Instantly share code, notes, and snippets.

@remittor
Created October 16, 2022 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save remittor/1f2bc834852009631d437cd96822afa4 to your computer and use it in GitHub Desktop.
Save remittor/1f2bc834852009631d437cd96822afa4 to your computer and use it in GitHub Desktop.
import sys
import optparse
import flask
parser = optparse.OptionParser("usage: %prog [options]", add_help_option=False)
parser.add_option("-h", "--host", dest="host", default='', type="string")
parser.add_option("-p", "--port", dest="port", default=5000, type="int")
parser.add_option("-g", "--gateway", dest="gateway", default="", type="string")
parser.add_option("-f", "--file", dest="file", default="", type="string")
parser.add_option("-b", "--binary", dest="binary", action="store_true", default=False)
parser.add_option("-v", "--verbose", dest="verbose", default=0, type="int")
(opt, args) = parser.parse_args()
payload = None
if opt.file:
with open(opt.file, "rb" if opt.binary else "rt") as file:
payload = file.read()
app = flask.Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def hello_world():
if payload:
return payload, 200
else:
return 'Hello, World!', 200
if __name__ == '__main__':
if opt.gateway == "" or opt.gateway == "wz":
import logging
from werkzeug.serving import WSGIRequestHandler
WSGIRequestHandler.protocol_version = "HTTP/1.1"
wzlog = logging.getLogger("werkzeug")
wzlog.setLevel(logging.WARN)
app.run(host=opt.host, port=opt.port)
if opt.gateway == "fw":
import fastwsgi
fastwsgi.LOGGING = opt.verbose
fastwsgi.run(wsgi_app=app, host=opt.host, port=opt.port, loglevel=opt.verbose)
if opt.gateway == "wr":
import waitress
waitress.serve(app=app, host=opt.host, port=opt.port)
print("==== Server close =====")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment