Files
gommi/gommi.py

136 lines
3.5 KiB
Python
Raw Normal View History

2022-04-21 19:23:01 +09:00
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())