Files
grotti/server.py
T

41 lines
1.2 KiB
Python

"""Grotti starten. Kern und Seiten liegen daneben."""
import threading
from grotti import jobs, library, store
from grotti.config import load
from grotti.db import connect, prepare
from web.app import create_app
def background(cfg):
def work():
try:
with connect(cfg["database_url"]) as conn:
library.sync_watch(conn, cfg, force=False)
jobs.sync_history(conn, cfg)
conn.commit()
except Exception as exc:
print("Abgleich: %s" % exc, flush=True)
threading.Thread(target=work, name="grotti-abgleich", daemon=True).start()
def main():
cfg = load()
cfg["data_dir"].mkdir(parents=True, exist_ok=True)
(cfg["data_dir"] / "eingang").mkdir(exist_ok=True)
prepare(cfg["database_url"])
with connect(cfg["database_url"]) as conn:
store.seed_printers(conn, cfg["printers_file"])
store.seed_materials(conn)
conn.commit()
app = create_app(cfg)
background(cfg)
print("Grotti: http://%s:%s/" % (cfg["host"], cfg["port"]), flush=True)
app.run(host=cfg["host"], port=cfg["port"], threaded=True, use_reloader=False)
if __name__ == "__main__":
main()