From 68b722121c65be10272329018efc2428692e8dde Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Sat, 31 May 2025 15:32:47 +0800 Subject: [PATCH] feat: add `--version` cli argument --- src/syncplay_boot/boot.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/syncplay_boot/boot.py b/src/syncplay_boot/boot.py index e4a1759..557b856 100644 --- a/src/syncplay_boot/boot.py +++ b/src/syncplay_boot/boot.py @@ -46,6 +46,8 @@ import json import yaml import tomllib import argparse +import platform +import syncplay from types import GenericAlias from typing import Any, TypedDict, NotRequired @@ -148,6 +150,12 @@ def load_from_env() -> SyncplayOptions: def load_from_args() -> SyncplayOptions: """ Load syncplay options from command line arguments. """ + def __version_msg() -> str: + python_ver = f'{platform.python_implementation()} {platform.python_version()}' + return (f'{parser.description} v{syncplay.version} ' + f'({syncplay.milestone} {syncplay.release_number}) ' + f'[{python_ver} {platform.machine()}]') + def __build_args(opt: str) -> list[str]: match opt := opt.replace('_', '-'): case 'port': return ['-p', f'--{opt}'] @@ -155,6 +163,7 @@ def load_from_args() -> SyncplayOptions: case _: return [f'--{opt}'] parser = argparse.ArgumentParser(description='Syncplay Docker Bootstrap') + parser.add_argument('-v', '--version', action='version', version=__version_msg()) for name, opts in ARG_OPTS.items(): parser.add_argument(*__build_args(name), **opts)