clean configurations
[myNix.git] / lib / default.nix
blob279bb1a972507a0ffd8ceef31d1f10041d7d7840
1 { lib ? import (<nixpkgs> + "/lib")
2 , ...
3 }:
5 let
7   inherit (builtins)
8     map
9     foldl'
10     readDir
11     pathExists
12     ;
13   inherit (lib)
14     filterAttrs
15     hasSuffix
16     attrNames
17     fix
18     ;
20   mylib-generator =
21     mylib:
22     let
23       importing-args = { inherit lib mylib; };
24       file-names = attrNames
25         (filterAttrs
26           (name: type:
27             ((type == "directory")
28             -> pathExists ./. + "/${name}/default.nix")
29             &&
30             ((type == "regular")
31             -> (hasSuffix ".nix" name && name != "default.nix"))
32           )
33           (readDir ./.)
34         );
35       attrs = map (name: import (./. + "/${name}") importing-args) file-names;
36     in
37     foldl' (a: b: a // b) { } attrs;
40 fix mylib-generator