From 6813598c17959862734e5878d745e7dd8a197717 Mon Sep 17 00:00:00 2001 From: sterni Date: Sat, 28 May 2022 13:49:34 +0200 Subject: feat(nix/utils): add onlyDrvPath to get the drvPath w/o the outputs I want to use this utility in a deploy script where the .drv is nix-copy-closure-d to a remote host and realized there. Consequently it doesn't make sense that the local deploy script depends on the derivation's outputs which drvPath does by default. This also came up when working on //nix/buildkite, although we didn't end up using it there. Change-Id: I952bbfd4d7e9de212569d5ee12182eb50d360f53 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5767 Tested-by: BuildkiteCI Autosubmit: sterni Reviewed-by: tazjin --- nix/utils/tests/default.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'nix/utils/tests') diff --git a/nix/utils/tests/default.nix b/nix/utils/tests/default.nix index 344a1771d7d9..d5159a8433b4 100644 --- a/nix/utils/tests/default.nix +++ b/nix/utils/tests/default.nix @@ -15,6 +15,7 @@ let isSymlink pathType storePathName + onlyDrvPath ; assertUtilsPred = msg: act: exp: [ @@ -91,9 +92,19 @@ let (storePathName cleanedSource) cleanedSource.name) ]; + + onlyDrvPathTests = it "correctly updates the string context of drvPath" [ + (assertEq "onlyDrvPath only produces path dependencies" + (builtins.all + (dep: dep.path or false) + (builtins.attrValues + (builtins.getContext (onlyDrvPath depot.tools.cheddar)))) + true) + ]; in runTestsuite "nix.utils" [ pathPredicates storePathNameTests + onlyDrvPathTests ] -- cgit 1.4.1