#!/usr/bin/python3 import sys import argparse import bjoern def install(arguments): from flaschengeist.app import create_app, install_all app = create_app() with app.app_context(): install_all() def run(arguments): from flaschengeist.app import create_app app = create_app() with app.app_context(): if arguments.debug: app.run(arguments.host, arguments.port, debug=True) else: bjoern.run(app, arguments.host, arguments.port, reuse_port=True) if __name__ == '__main__': # create the top-level parser parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(help='sub-command help', dest="sub_command") subparsers.required = True parser_run = subparsers.add_parser('run', help='run flaschengeist') parser_run.set_defaults(func=run) parser_run.add_argument("--host", help="set hostname to listen on", default="127.0.0.1") parser_run.add_argument("--port", help="set port to listen on", type=int, default=5000) parser_run.add_argument("--debug", help="run in debug mode", action="store_true") parser_install = subparsers.add_parser('install', help='run database setup for flaschengeist and all installed plugins') parser_install.set_defaults(func=install) args = parser.parse_args() args.func(args)