diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..1cbd641 --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,24 @@ +{ lib, ... }: +{ + # use path relative to the root of the project + relativeToRoot = lib.path.append ../.; + scanPaths = path: + builtins.map + (f: (path + "/${f}")) + (builtins.attrNames + (lib.attrsets.filterAttrs + ( + path: _type: + (_type == "directory") # include directories + || ( + # FIXME this barfs when child directories don't contain a default.nix + # example: + # error: getting status of '/nix/store/mx31x8530b758ap48vbg20qzcakrbc8 (see hosts/common/core/services/default.nix)a-source/hosts/common/core/services/default.nix': No such file or directory + # I created a blank default.nix in hosts/common/core/services to work around + (path != "default.nix") # ignore default.nix + && (lib.strings.hasSuffix ".nix" path) # include .nix files + ) + ) + (builtins.readDir path))); +} +