nixos/lib/default.nix

38 lines
961 B
Nix

final: _prev: {
youthlic = {
loadImports' =
dir: f:
final.pipe dir [
final.youthlic.loadImports
f
];
loadImports =
dir:
with final;
if !(pathExists dir && builtins.readFileType dir == "directory") then
[ ]
else
let
items = pipe dir [
builtins.readDir
attrNames
];
in
pipe items [
(concatMap (
name:
let
path = dir + "/${name}";
type = builtins.readFileType path;
in
if type == "directory" then
if pathExists (path + "/default.nix") then [ path ] else youthlic.loadImports path
else if type == "regular" then
if hasSuffix ".nix" name then [ path ] else [ ]
else
[ ]
))
(filter (name: !hasSuffix "/default.nix" (toString name)))
];
};
}