diff --git a/src/ankisyncd/__main__.py b/src/ankisyncd/__main__.py index 656c54a..94091d4 100644 --- a/src/ankisyncd/__main__.py +++ b/src/ankisyncd/__main__.py @@ -1,4 +1,9 @@ import sys +import logging + +from ankisyncd.sync_app import SyncApp + +logger = logging.getLogger("ankisyncd") if __package__ is None and not hasattr(sys, "frozen"): import os.path @@ -6,7 +11,48 @@ if __package__ is None and not hasattr(sys, "frozen"): path = os.path.realpath(os.path.abspath(__file__)) sys.path.insert(0, os.path.dirname(os.path.dirname(path))) -import ankisyncd.sync_app + +def main(): + logging.basicConfig( + level=logging.INFO, format="[%(asctime)s]:%(levelname)s:%(name)s:%(message)s" + ) + import ankisyncd + + logger.info( + "ankisyncd {} ({})".format(ankisyncd._get_version(), ankisyncd._homepage) + ) + from wsgiref.simple_server import make_server, WSGIRequestHandler + from ankisyncd.thread import shutdown + import ankisyncd.config + + class RequestHandler(WSGIRequestHandler): + logger = logging.getLogger("ankisyncd.http") + + def log_error(self, format, *args): + self.logger.error("%s %s", self.address_string(), format % args) + + def log_message(self, format, *args): + self.logger.info("%s %s", self.address_string(), format % args) + + if len(sys.argv) > 1: + # backwards compat + config = ankisyncd.config.load(sys.argv[1]) + else: + config = ankisyncd.config.load() + + ankiserver = SyncApp(config) + httpd = make_server( + config["host"], int(config["port"]), ankiserver, handler_class=RequestHandler + ) + + try: + logger.info("Serving HTTP on {} port {}...".format(*httpd.server_address)) + httpd.serve_forever() + except KeyboardInterrupt: + logger.info("Exiting...") + finally: + shutdown() + if __name__ == "__main__": - ankisyncd.sync_app.main() + main() diff --git a/src/ankisyncd/sync_app.py b/src/ankisyncd/sync_app.py index 8d01f0e..f032f21 100644 --- a/src/ankisyncd/sync_app.py +++ b/src/ankisyncd/sync_app.py @@ -809,49 +809,3 @@ class SyncApp: def make_app(global_conf, **local_conf): return SyncApp(**local_conf) - - -def main(): - logging.basicConfig( - level=logging.INFO, format="[%(asctime)s]:%(levelname)s:%(name)s:%(message)s" - ) - import ankisyncd - - logger.info( - "ankisyncd {} ({})".format(ankisyncd._get_version(), ankisyncd._homepage) - ) - from wsgiref.simple_server import make_server, WSGIRequestHandler - from ankisyncd.thread import shutdown - import ankisyncd.config - - class RequestHandler(WSGIRequestHandler): - logger = logging.getLogger("ankisyncd.http") - - def log_error(self, format, *args): - self.logger.error("%s %s", self.address_string(), format % args) - - def log_message(self, format, *args): - self.logger.info("%s %s", self.address_string(), format % args) - - if len(sys.argv) > 1: - # backwards compat - config = ankisyncd.config.load(sys.argv[1]) - else: - config = ankisyncd.config.load() - - ankiserver = SyncApp(config) - httpd = make_server( - config["host"], int(config["port"]), ankiserver, handler_class=RequestHandler - ) - - try: - logger.info("Serving HTTP on {} port {}...".format(*httpd.server_address)) - httpd.serve_forever() - except KeyboardInterrupt: - logger.info("Exiting...") - finally: - shutdown() - - -if __name__ == "__main__": - main()