From a13e9c9393421e3df6d1daacb1e8c3baa18e84ce Mon Sep 17 00:00:00 2001 From: Else Someone Date: Sun, 15 Mar 2026 01:30:18 +0200 Subject: [PATCH] uvms: support args in app urls --- pkgs/uvms/uvms.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pkgs/uvms/uvms.py b/pkgs/uvms/uvms.py index d89a6ff..9a8582c 100644 --- a/pkgs/uvms/uvms.py +++ b/pkgs/uvms/uvms.py @@ -13,7 +13,7 @@ import json import re from argparse import ArgumentParser from contextlib import contextmanager, closing, ExitStack -from urllib import urlparse +from urllib.parse import urlparse, parse_qs parser = ArgumentParser("supervise-vm") @@ -519,16 +519,21 @@ def main(args, args_next, cleanup, ps): app_paths = [] for a in args.app: a = urlparse(a) - nix_file = None + nix_file = "./." attr = None if a.scheme == "": nix_file = "" attr = a.path - elif a.scheme == "getexe": - nix_file = a.netloc or "./." - attr = a.path.lstrip("/") else: - raise RuntimeError("Unknown app url", a) + assert a.fragment, a + attr = a.fragment + nix_file = a.path or "./." + arglist = [] + for k, v in parse_qs(a.query).items(): + arglist.append("--arg") + arglist.append(k) + arglist.append(v) + assert nix_file is not None, a assert attr is not None, a out_path = ps.exec( @@ -536,7 +541,9 @@ def main(args, args_next, cleanup, ps): nix_file, "-A", attr, + *arglist, "--no-out-link", + cwd=os.getcwd(), capture_output=True, text=True, ).stdout.strip()