26 lines
692 B
Nix
26 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
|