about summary refs log tree commit diff
path: root/nix/readTree
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-02-07T10·24+0300
committertazjin <tazjin@tvl.su>2022-02-07T15·13+0000
commit3bde42586089a28a49dc063c2e639194211cb9af (patch)
treef137b907fc6a2a49f20ff0499d2c01e78e8a03a1 /nix/readTree
parent98b6af02f525bdf61de806ffd8545f0b5a3fa817 (diff)
refactor(nix): Move `mkLabel` from buildkite to readTree r/3774
This function is more generically useful than just for pipeline
construction.

A subsequent commit will use it inside of readTree itself.

Change-Id: I5eabd6f659726484667e060958865dddbc205762
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5237
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Diffstat (limited to 'nix/readTree')
-rw-r--r--nix/readTree/default.nix9
1 files changed, 8 insertions, 1 deletions
diff --git a/nix/readTree/default.nix b/nix/readTree/default.nix
index 22815a44c4ee..5d2e1fff6aa8 100644
--- a/nix/readTree/default.nix
+++ b/nix/readTree/default.nix
@@ -58,6 +58,13 @@ let
     __readTreeChildren = builtins.attrNames children;
   };
 
+  # Create a label from a target's tree location.
+  mkLabel = target:
+    let label = concatStringsSep "/" target.__readTree;
+    in if target ? __subtarget
+    then "${label}:${target.__subtarget}"
+    else label;
+
   # Merge two attribute sets, but place attributes in `passthru` via
   # `overrideAttrs` for derivation targets that support it.
   merge = a: b:
@@ -188,7 +195,7 @@ let
   isDerivation = x: isAttrs x && x ? type && x.type == "derivation";
 in
 {
-  inherit gather;
+  inherit gather mkLabel;
 
   __functor = _:
     { path