nixos/lib/default.nix

35 lines
1,004 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)))
];
};
}