32 lines
1.1 KiB
Nix
32 lines
1.1 KiB
Nix
{ 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)
|
|
)
|
|
);
|
|
concatPathsWithPrefix = { prefix, path }:
|
|
builtins.concatLists
|
|
[
|
|
(builtins.map (path: "${prefix}/${path}") paths)
|
|
];
|
|
}
|
|
|