From 2fa15132fbe5de54d65207bd251bb8a9d6b7ded1 Mon Sep 17 00:00:00 2001 From: Leo Vasanko Date: Tue, 2 Jun 2026 23:11:08 +0000 Subject: [PATCH] Make default script run with GUI if possible. Add --gui to force GUI. --- mediahive/__main__.py | 21 +++++++++++++++++++++ mediahive/winmain.py | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/mediahive/__main__.py b/mediahive/__main__.py index dffcdb8..c3c4be6 100644 --- a/mediahive/__main__.py +++ b/mediahive/__main__.py @@ -54,9 +54,30 @@ def main() -> None: action="append", help=(f"Endpoint (default: localhost:{DEFAULT_PORT})."), ) + parser.add_argument( + "--gui", + action="store_true", + help="Run with GUI (fails if GUI dependencies are not installed)", + ) args = parser.parse_args() + # --listen implies server-only mode; use --gui to force GUI even with --listen. + use_gui = args.gui or not args.listen + + if use_gui: + try: + from mediahive.winmain import winmain + except ImportError as exc: + if args.gui: + raise RuntimeError( + "GUI dependencies are not installed. " + "Install with: uv pip install mediahive[gui]" + ) from exc + else: + winmain() + return + if args.media_folders: roots: dict[str, str] = {} for path in args.media_folders: diff --git a/mediahive/winmain.py b/mediahive/winmain.py index d877ec5..972c033 100644 --- a/mediahive/winmain.py +++ b/mediahive/winmain.py @@ -893,7 +893,7 @@ def winmain() -> None: nargs="?", help="Path to the media folder (default: saved config or initial setup dialog)", ) - args = parser.parse_args() + args, _unknown = parser.parse_known_args() _prepend_meipass_to_path()