allow IFD in nix flake show
Some checks failed
Check Nix flake / Build nix outputs (ubuntu-latest) (pull_request) Has been cancelled
Check Nix flake / Perform Nix flake checks (ubuntu-latest) (pull_request) Has been cancelled
Check Nix formatting / Perform Nix format checks (pull_request) Has been cancelled
Check flake.lock / Check health of `flake.lock` (pull_request) Failing after 13s
Some checks failed
Check Nix flake / Build nix outputs (ubuntu-latest) (pull_request) Has been cancelled
Check Nix flake / Perform Nix flake checks (ubuntu-latest) (pull_request) Has been cancelled
Check Nix formatting / Perform Nix format checks (pull_request) Has been cancelled
Check flake.lock / Check health of `flake.lock` (pull_request) Failing after 13s
Signed-off-by: ahuston-0 <aliceghuston@gmail.com>
This commit is contained in:
parent
90deb23e94
commit
2e8930cf1d
@ -21,6 +21,11 @@ def parse_inputs() -> argparse.Namespace:
|
|||||||
action="store_true",
|
action="store_true",
|
||||||
help="whether to compare two drv sets, must provide two evaluation jsons to compare",
|
help="whether to compare two drv sets, must provide two evaluation jsons to compare",
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--allow-import-from-derivation",
|
||||||
|
action="store_true",
|
||||||
|
help="whether to allow IFD during certain actions (ex. nix flake show)",
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--compare-pre-json",
|
"--compare-pre-json",
|
||||||
metavar="pre-json-path",
|
metavar="pre-json-path",
|
||||||
|
@ -71,7 +71,7 @@ def get_derivations_from_check(nix_path: str, path_to_flake: str) -> list[str]:
|
|||||||
return derivations
|
return derivations
|
||||||
|
|
||||||
|
|
||||||
def get_derivations(path_to_flake: str) -> list[str]:
|
def get_derivations(path_to_flake: str, *, allow_import_from_derivation: False = False) -> list[str]:
|
||||||
"""Gets all derivations present in a flake.
|
"""Gets all derivations present in a flake.
|
||||||
|
|
||||||
:param path_to_flake: path to flake to be checked
|
:param path_to_flake: path to flake to be checked
|
||||||
@ -83,7 +83,9 @@ def get_derivations(path_to_flake: str) -> list[str]:
|
|||||||
if nix_path is None:
|
if nix_path is None:
|
||||||
status_msg = "nix is not available in the PATH, please verify that it is installed"
|
status_msg = "nix is not available in the PATH, please verify that it is installed"
|
||||||
raise RuntimeError(status_msg)
|
raise RuntimeError(status_msg)
|
||||||
flake_show = bash_wrapper(f"{nix_path} flake show --json --accept-flake-path", path=path_to_flake)
|
cmd = f"{nix_path} flake show --json --accept-flake-path"
|
||||||
|
cmd += " --allow-import-from-derivation" if allow_import_from_derivation else ""
|
||||||
|
flake_show = bash_wrapper(cmd, path=path_to_flake)
|
||||||
if flake_show[2] != 0:
|
if flake_show[2] != 0:
|
||||||
logger.error("flake show returned non-zero exit code")
|
logger.error("flake show returned non-zero exit code")
|
||||||
logger.warning("falling back to full evaluation via nix flake check")
|
logger.warning("falling back to full evaluation via nix flake check")
|
||||||
|
@ -99,7 +99,7 @@ def build_or_eval(args: Namespace) -> None:
|
|||||||
"""
|
"""
|
||||||
flake_path = args.flake_path
|
flake_path = args.flake_path
|
||||||
derivations, hydra_jobs = partition(
|
derivations, hydra_jobs = partition(
|
||||||
lambda s: s.startswith("hydraJobs"), get_derivations(flake_path)
|
lambda s: s.startswith("hydraJobs"), get_derivations(flake_path, args["allow-import-from-derivation"])
|
||||||
)
|
)
|
||||||
derivations, hydra_jobs = list(derivations), list(hydra_jobs)
|
derivations, hydra_jobs = list(derivations), list(hydra_jobs)
|
||||||
logger.info(f"derivations: {list(derivations)}")
|
logger.info(f"derivations: {list(derivations)}")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user