#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import unicode_literals import sys import argparse from rophako.app import app parser = argparse.ArgumentParser(description="Rophako") parser.add_argument( "--port", "-p", type=int, help="Port to listen on", default=2006, ) parser.add_argument( "--key", "-k", type=str, help="SSL private key file. Providing this option will turn on SSL mode " \ + "(and will require pyOpenSSL to be installed).", ) parser.add_argument( "--cert", "-c", type=str, help="SSL certificate file.", ) parser.add_argument( "--production", help="Turns off debug mode, runs as if in production.", action="store_true", ) args = parser.parse_args() if __name__ == '__main__': flask_options = dict( host='0.0.0.0', debug=not args.production, port=args.port, threaded=True, ) if args.key and args.cert: from OpenSSL import SSL context = SSL.Context(SSL.SSLv23_METHOD) context.use_privatekey_file(args.key) context.use_certificate_file(args.cert) app.config['SESSION_COOKIE_SECURE'] = True flask_options["ssl_context"] = context app.run(**flask_options)