diff --git a/mediahive/server.py b/mediahive/server.py index c397be4..2be1de9 100644 --- a/mediahive/server.py +++ b/mediahive/server.py @@ -158,9 +158,19 @@ async def lifespan(app: FastAPI): await store.load_snapshot() _scanner_active = False - logger.info( - "Server started without active media root; waiting for folder activation" - ) + initial_root_raw = os.environ.get("MEDIAHIVE_PATH") + defer_initial_root = os.environ.get("MEDIAHIVE_DEFER_INITIAL_ROOT") == "1" + + if initial_root_raw and not defer_initial_root: + initial_root = Path(initial_root_raw).expanduser() + if not initial_root.is_absolute(): + initial_root = Path.cwd() / initial_root + _folder_switch_task = asyncio.create_task(_switch_folder(initial_root)) + logger.info("Server started; scheduled initial media root activation") + else: + logger.info( + "Server started without active media root; waiting for folder activation" + ) yield diff --git a/mediahive/winmain.py b/mediahive/winmain.py index 9383b10..1a79e8e 100644 --- a/mediahive/winmain.py +++ b/mediahive/winmain.py @@ -775,6 +775,7 @@ def winmain() -> None: mediaroot = _normalize_media_root_input(folder) os.environ["MEDIAHIVE_PATH"] = mediaroot.as_posix() + os.environ["MEDIAHIVE_DEFER_INITIAL_ROOT"] = "1" backend_port = _reserve_backend_port() backend_url = f"http://{BACKEND_HOST}:{backend_port}"