mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 04:01:32 -06:00

remove no longer used options allow loading of json data files from webhost when it gets run by gunicorn and similar
50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
import os
|
|
import multiprocessing
|
|
import logging
|
|
|
|
import ModuleUpdate
|
|
ModuleUpdate.requirements_files.add(os.path.join("WebHostLib", "requirements.txt"))
|
|
ModuleUpdate.update()
|
|
|
|
# in case app gets imported by something like gunicorn
|
|
import Utils
|
|
Utils.local_path.cached_path = os.path.dirname(__file__)
|
|
|
|
from WebHostLib import app as raw_app
|
|
from waitress import serve
|
|
|
|
from WebHostLib.models import db
|
|
from WebHostLib.autolauncher import autohost
|
|
from WebHostLib.lttpsprites import update_sprites_lttp
|
|
from WebHostLib.options import create as create_options_files
|
|
|
|
configpath = os.path.abspath("config.yaml")
|
|
|
|
|
|
def get_app():
|
|
app = raw_app
|
|
if os.path.exists(configpath):
|
|
import yaml
|
|
app.config.from_file(configpath, yaml.safe_load)
|
|
logging.info(f"Updated config from {configpath}")
|
|
db.bind(**app.config["PONY"])
|
|
db.generate_mapping(create_tables=True)
|
|
return app
|
|
|
|
|
|
if __name__ == "__main__":
|
|
multiprocessing.freeze_support()
|
|
multiprocessing.set_start_method('spawn')
|
|
logging.basicConfig(format='[%(asctime)s] %(message)s', level=logging.INFO)
|
|
update_sprites_lttp()
|
|
app = get_app()
|
|
create_options_files()
|
|
if app.config["SELFLAUNCH"]:
|
|
autohost(app.config)
|
|
if app.config["SELFHOST"]: # using WSGI, you just want to run get_app()
|
|
if app.config["DEBUG"]:
|
|
autohost(app.config)
|
|
app.run(debug=True, port=app.config["PORT"])
|
|
else:
|
|
serve(app, port=app.config["PORT"], threads=app.config["WAITRESS_THREADS"])
|