diff options
author | sterni <sternenseemann@systemli.org> | 2021-09-08T22·04+0200 |
---|---|---|
committer | sterni <sternenseemann@systemli.org> | 2021-09-09T15·57+0000 |
commit | 23dd8067c534d97bbd1820377998379beac1b205 (patch) | |
tree | a578fb9d87d820e4ae4da449e723fd11f7552442 /nix/utils | |
parent | 5f9c85a1b53dc025398e00263f87bf87a16950d3 (diff) |
feat(nix/sparseTree): get a directory with only selected children r/2830
Given a path (which points to a directory and a list of paths which are below that path, build a “sparse” version of that directory, so that it only contains the listed paths (and their children): $ nix-build -E 'with import ./. {}; nix.sparseTree ./. [ ./default.nix ./nix/readTree ./nix/buildLisp ./third_party/nixpkgs ./third_party/overlays ]' /nix/store/0ynj0gc613fs6mfp9snqcvdj5gfxbdzg-sparse-depot $ lr -t 'type == d' result/ result/ result/nix result/nix/buildLisp result/nix/buildLisp/example result/nix/readTree result/nix/readTree/tests […] result/third_party result/third_party/nixpkgs result/third_party/overlays result/third_party/overlays/haskell result/third_party/overlays/haskell/patches result/third_party/overlays/patches This is useful if a derivation depends on depot.path (e. g. if it wants to import depot at runtime). Usually this means that on every depot commit (or even worse, every change of .git on a local machine), this derivation has to be rebuild. By using sparseTree you can instead depend on a stripped down version of depot which only contains the bits you actually depend on, avoiding unrelated rebuilds. Change-Id: I127b108c8b177c657fb46786d0a6256516fd2c52 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3503 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'nix/utils')
0 files changed, 0 insertions, 0 deletions