from app import create_app, db import argparse from flask import render_template import os from app.utils.init_modules import create_modules_db import signal import sys import subprocess from app.utils.utils import gen_admin_password def signal_handler(sig, frame): path = os.path.join(os.getcwd(), "launch.sh") req = [path, "-ks"] subprocess.call(req) sys.exit(0) signal.signal(signal.SIGINT, signal_handler) parser = argparse.ArgumentParser() parser.add_argument("-i", "--init_db", help="Initialise the db if it not exist", action="store_true") parser.add_argument("-r", "--recreate_db", help="Delete and initialise the db", action="store_true") parser.add_argument("-d", "--delete_db", help="Delete the db", action="store_true") parser.add_argument("-m", "--create_module", help="Create modules in db", action="store_true") args = parser.parse_args() os.environ.setdefault('FLASKENV', 'development') app = create_app() @app.errorhandler(404) def error_page_not_found(e): return render_template('404.html'), 404 if args.init_db: with app.app_context(): db.create_all() elif args.recreate_db: with app.app_context(): db.drop_all() db.create_all() elif args.delete_db: with app.app_context(): db.drop_all() elif args.create_module: with app.app_context(): create_modules_db() else: gen_admin_password() app.run(host=app.config.get("FLASK_URL"), port=app.config.get("FLASK_PORT"))