2025-07-11 21:04:42 +08:00
|
|
|
final: _prev: {
|
|
|
|
|
youthlic = {
|
|
|
|
|
loadImports' = dir: f:
|
2025-07-12 03:53:16 +08:00
|
|
|
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)))
|
|
|
|
|
];
|
2025-07-11 21:04:42 +08:00
|
|
|
};
|
|
|
|
|
}
|