"""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()