fix(nix/readTree): Ignore hidden files and directories

This skips any directory entries starting with a dot.

Change-Id: I95767f3d35bcb2ed9b3d6e772f3924dd57612711
Reviewed-on: https://cl.tvl.fyi/c/depot/+/123
Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
edef 2020-05-28 12:51:36 +00:00 committed by edef
parent cbcec9fd04
commit cec109807b

View file

@ -9,17 +9,28 @@ let
filter filter
hasAttr hasAttr
head head
isAttrs
length length
listToAttrs listToAttrs
map map
match match
isAttrs readDir
readDir; substring;
argsWithPath = parts: args // { argsWithPath = parts: args // {
locatedAt = parts; locatedAt = parts;
}; };
readDirVisible = path:
let
children = readDir path;
isVisible = f: f == ".skip-subtree" || (substring 0 1 f) != ".";
names = filter isVisible (attrNames children);
in listToAttrs (map (name: {
inherit name;
value = children.${name};
}) names);
# The marker is added to every set that was imported directly by # The marker is added to every set that was imported directly by
# readTree. # readTree.
importWithMark = path: parts: importWithMark = path: parts:
@ -34,7 +45,7 @@ let
readTree = path: parts: readTree = path: parts:
let let
dir = readDir path; dir = readDirVisible path;
self = importWithMark path parts; self = importWithMark path parts;
joinChild = c: path + ("/" + c); joinChild = c: path + ("/" + c);