refactor: Move main function into cli entrypoint

This commit is contained in:
Vikash Kothary 2022-10-14 20:40:20 +01:00
parent 3194b53d13
commit ed5d6477d8
2 changed files with 48 additions and 48 deletions

View File

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

View File

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