diff --git a/mediahive/__main__.py b/mediahive/__main__.py index e1d6e83..1f33c01 100644 --- a/mediahive/__main__.py +++ b/mediahive/__main__.py @@ -1,5 +1,6 @@ import argparse import os +import sys from pathlib import Path from fastapi_vue import server @@ -8,6 +9,22 @@ DEFAULT_PORT = 8420 DEVMODE = bool(os.getenv("MEDIAHIVE_FRONTEND_URL")) +def resolve_media_root(path: str | None = None) -> Path: + """Resolve the media root folder from a path, MEDIAHIVE_PATH env, or cwd.""" + match Path(path or os.environ.get("MEDIAHIVE_PATH") or Path.cwd()).parts: + case (*rest, ".mediahive", "index.json"): + ... + case (*rest, ".mediahive"): + ... + case rest: + ... + mediaroot = Path(*rest).resolve() + if not mediaroot.exists() or not mediaroot.is_dir(): + sys.stderr.write(f"Error: Folder does not exist: {mediaroot}\n") + exit(1) + return mediaroot + + def main(): parser = argparse.ArgumentParser( description="MediaHive - Media scanning, indexing, and streaming" @@ -26,20 +43,7 @@ def main(): args = parser.parse_args() - # Determine media folder - match Path( - args.media_folder or os.environ.get("MEDIAHIVE_PATH") or Path.cwd() - ).parts: - case (*rest, ".mediahive", "index.json"): - ... - case (*rest, ".mediahive"): - ... - case rest: - ... - mediaroot = Path(*rest).resolve() - if not mediaroot.exists() or not mediaroot.is_dir(): - print(f"Error: Folder does not exist: {mediaroot}") - exit(1) + mediaroot = resolve_media_root(args.media_folder) os.environ["MEDIAHIVE_PATH"] = mediaroot.as_posix() dev = {"reload": True, "reload_dirs": ["mediahive"]} diff --git a/scripts/fastapi-vue/buildutil.py b/scripts/fastapi-vue/buildutil.py index db1ad46..c2b641e 100644 --- a/scripts/fastapi-vue/buildutil.py +++ b/scripts/fastapi-vue/buildutil.py @@ -31,7 +31,7 @@ def _check_node_version(node_path: str) -> None: """ try: result = subprocess.run( - [node_path, "--version"], capture_output=True, encoding="utf-8", check=True + [node_path, "--version"], capture_output=True, text=True, check=True ) version_str = result.stdout.strip() # Parse version like "v20.10.0" or "v18.17.1" diff --git a/scripts/fastapi-vue/devutil.py b/scripts/fastapi-vue/devutil.py index 811781c..66c4744 100644 --- a/scripts/fastapi-vue/devutil.py +++ b/scripts/fastapi-vue/devutil.py @@ -207,10 +207,5 @@ def setup_cli( host = endpoints[0]["host"] port = endpoints[0]["port"] - cmd = [ - sys.executable, - "-m", - cli, - f"--listen={host}:{port}", - ] + cmd = [cli, f"--listen={host}:{port}"] return f"http://{host}:{port}", cmd