27 lines
692 B
Nix
27 lines
692 B
Nix
|
{ pkgs
|
||
|
, lib
|
||
|
, config
|
||
|
, ...
|
||
|
}:
|
||
|
let
|
||
|
# list paths
|
||
|
pkgs-paths-list = lib.fileset.toList (lib.fileset.fromSource (lib.sources.sourceFilesBySuffices ./. [ ".nix" ]));
|
||
|
# no default.nix
|
||
|
filtered-paths-list = builtins.filter (path: builtins.baseNameOf path != "default.nix") pkgs-paths-list;
|
||
|
# filename-extension parsed out
|
||
|
pkgs-paths =
|
||
|
builtins.map
|
||
|
(path: {
|
||
|
name = lib.strings.removeSuffix ".nix" (builtins.baseNameOf path);
|
||
|
path = path;
|
||
|
})
|
||
|
filtered-paths-list;
|
||
|
# import each path
|
||
|
imported-pkgs = lib.attrsets.mergeAttrsList (builtins.map
|
||
|
(pkg: {
|
||
|
"${pkg.name}" = pkgs.callPackage pkg.path { };
|
||
|
})
|
||
|
pkgs-paths);
|
||
|
in
|
||
|
imported-pkgs
|