import os, sys, platform, traceback # noqa F401 sys.path.insert( 0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "lib") ) sys.path.insert( 1, os.path.join(os.path.dirname(os.path.abspath(__file__)), "lib2") ) print(platform.system()) if platform.system() == "Linux": if ( ( platform.platform().find("86") == -1 and platform.platform().find("64") == -1 ) or platform.platform().find("arch") != -1 or platform.platform().find("arm") != -1 ): sys.path.insert( 2, os.path.join( os.path.dirname(os.path.abspath(__file__)), "lib", "sc", "LinuxArm", ), ) else: sys.path.insert( 2, os.path.join( os.path.dirname(os.path.abspath(__file__)), "lib", "sc", "Linux" ), ) if platform.system() == "Windows": sys.path.insert( 2, os.path.join( os.path.dirname(os.path.abspath(__file__)), "lib", "sc", "Windows" ), ) print("[GOMMI] sys.path : %s" % sys.path) print("[GOMMI] sys.argv : %s" % sys.argv) # prepare starting def prepare_starting(): try: from gevent import monkey monkey.patch_all() print("[GOMMI] gevent monkey patch!!") sys.getfilesystemencoding = lambda: "UTF-8" except Exception: print("[GOMMI] gevent not installed!!") def start_app(): import framework app = framework.app app.jinja_env.auto_reload = True app.config["TEMPLATES_AUTO_RELOAD"] = True for i in range(10): try: framework.socketio.run( app, host="0.0.0.0", port=app.config["config"]["port"] ) print("EXIT CODE : %s" % framework.exit_code) # 2021-05-18 if app.config["config"]["running_type"] in ["termux", "entware"]: os._exit(framework.exit_code) else: if framework.exit_code != -1: sys.exit(framework.exit_code) else: print("framework.exit_code is -1") break except Exception as exception: print(str(exception)) import time time.sleep(10 * i) continue except KeyboardInterrupt: print("KeyboardInterrupt !!") print("start_app() end") def process_args(): import argparse parser = argparse.ArgumentParser() parser.add_argument( "--port", type=int, help="If this value is set, ignore the DB value and use it", ) parser.add_argument( "--use_gevent", choices=["true", "false"], default="true", help="If true, use gevent. (WCGI, scheduler, socketio)", ) parser.add_argument( "--use_celery", choices=["true", "false"], default="true", help="If true, use celery.\nThis value is set to False by force on Windows10", ) parser.add_argument( "--repeat", default=0, type=int, help="Do not set. This value is set by automatic", ) args = parser.parse_args() args.use_gevent = args.use_gevent == "true" args.use_celery = args.use_celery == "true" print("[GOMMI] args : %s" % args) return args if __name__ == "__main__": try: process_args() prepare_starting() start_app() except Exception as exception: print(str(exception)) print(traceback.format_exc())