nix/pkgs/default.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