about summary refs log tree commit diff
path: root/users
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2024-10-15T23·05+0300
committerclbot <clbot@tvl.fyi>2024-10-16T19·29+0000
commitb4b2ae1cc618368381eb4454f966d68f33345765 (patch)
tree6a1d14acd0d735f2b6866cb01f5b87fed4efa546 /users
parent7e78ebe796c2bb8b5cad09ac8819e091df87e19b (diff)
refactor(tvix/glue): merge builtins.{filterSource,path} codepaths r/8815
This moves the implementation from builtins.path into a helper function,
which we now call from both builtins.

Most of the Value plumbing stays inside this helper.

We also implemented handling of symlinks at the root, which was handled
in builtins.filterSource, but not builtins.path - by peeking at the
FileType using std::fs::metadata, instead of the EvalIO trait.

For now, this is fine, as our filtered_ingest also goes via the
filesystem directly. It ends up with the same semantics as before and in
Nix - symlinks at the root are followed, except if they point to an
invalid target.

In the future, we should revisit this, and then maybe get both stat and
lstat into EvalIO, though we will need to be very careful about the
semantics for following symlink inside store paths.

Change-Id: I6a941c0187db36165c2f7a338015e4e32d41b298
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12629
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Diffstat (limited to 'users')
0 files changed, 0 insertions, 0 deletions