diff --git a/pkgs/uvms/uvms.py b/pkgs/uvms/uvms.py index d58fb28..d89a6ff 100644 --- a/pkgs/uvms/uvms.py +++ b/pkgs/uvms/uvms.py @@ -13,6 +13,7 @@ import json import re from argparse import ArgumentParser from contextlib import contextmanager, closing, ExitStack +from urllib import urlparse parser = ArgumentParser("supervise-vm") @@ -517,11 +518,24 @@ def main(args, args_next, cleanup, ps): app_paths = [] for a in args.app: + a = urlparse(a) + nix_file = None + 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 nix_file is not None, a + assert attr is not None, a out_path = ps.exec( "nix-build", - "", + nix_file, "-A", - a, + attr, "--no-out-link", capture_output=True, text=True,