diff --git a/.gitignore b/.gitignore index c56ee94..ca20904 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.pyc *.db +/ankisyncd/_version.py /collections /venv diff --git a/ankisyncd/__init__.py b/ankisyncd/__init__.py index 0e9c2be..8ad83df 100644 --- a/ankisyncd/__init__.py +++ b/ankisyncd/__init__.py @@ -3,3 +3,31 @@ import sys sys.path.insert(0, "/usr/share/anki") sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), "anki-bundled")) + +_homepage = "https://github.com/tsudoko/anki-sync-server" +_unknown_version = "[unknown version]" + + +def _get_version(): + try: + from ankisyncd._version import version + + return version + except ImportError: + pass + + import subprocess + + try: + return ( + subprocess.run( + ["git", "describe", "--always"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + .stdout.strip() + .decode() + or _unknown_version + ) + except (FileNotFoundError, subprocess.CalledProcessError): + return _unknown_version diff --git a/ankisyncd/sync_app.py b/ankisyncd/sync_app.py index faee4cf..c6b8b8a 100644 --- a/ankisyncd/sync_app.py +++ b/ankisyncd/sync_app.py @@ -642,6 +642,8 @@ def make_app(global_conf, **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