diff options
author | Vincent Ambo <tazjin@google.com> | 2019-12-21T05·42+0000 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2019-12-21T05·42+0000 |
commit | 4a9c6ab6a22432a8df3ad0611dd4821e005dc0a7 (patch) | |
tree | 7b07ccce519172ba316f3ae1107017a15d22357e /read-tree.nix | |
parent | cbc3409ce099e42e59b031bfe9bd43953206cb4c (diff) |
refactor(nix/readTree): Move readTree to its own subfolder r/279
Diffstat (limited to 'read-tree.nix')
-rw-r--r-- | read-tree.nix | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/read-tree.nix b/read-tree.nix deleted file mode 100644 index 052865914e5b..000000000000 --- a/read-tree.nix +++ /dev/null @@ -1,61 +0,0 @@ -args: initPath: - -let - inherit (builtins) - attrNames - baseNameOf - filter - hasAttr - head - length - listToAttrs - map - match - isAttrs - readDir; - - argsWithPath = parts: args // { - locatedAt = parts; - }; - - # The marker is added to every set that was imported directly by - # readTree. - importWithMark = path: parts: - let imported = import path (argsWithPath parts); - in if (isAttrs imported) - then imported // { __readTree = true; } - else imported; - - nixFileName = file: - let res = match "(.*)\.nix" file; - in if res == null then null else head res; - - readTree = path: parts: - let - dir = readDir path; - self = importWithMark path parts; - joinChild = c: path + ("/" + c); - - # Import subdirectories of the current one, unless the special - # `.skip-subtree` file exists which makes readTree ignore the - # children. - # - # This file can optionally contain information on why the tree - # should be ignored, but its content is not inspected by - # readTree - filterDir = f: dir."${f}" == "directory"; - children = if hasAttr ".skip-subtree" dir then [] else map (c: { - name = c; - value = readTree (joinChild c) (parts ++ [ c ]); - }) (filter filterDir (attrNames dir)); - - # Import Nix files - nixFiles = filter (f: f != null) (map nixFileName (attrNames dir)); - nixChildren = map (c: let p = joinChild (c + ".nix"); in { - name = c; - value = importWithMark p (parts ++ [ c ]); - }) nixFiles; - in if dir ? "default.nix" - then (if isAttrs self then self // (listToAttrs children) else self) - else listToAttrs (nixChildren ++ children); -in readTree initPath [ (baseNameOf initPath) ] |