{ 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