{lib, pkgs, ...}: let mkPackage = name: v: { ${name} = pkgs.callPackage ./${name} {}; }; rmNotPackage = name: value: value == "directory" && builtins.pathExists ./${name}/default.nix; packages = lib.attrsets.filterAttrs rmNotPackage (builtins.readDir ./.); pkgSet = lib.attrsets.concatMapAttrs mkPackage packages; in { imports = [{ options.customPkgs = lib.mkOption { type = lib.types.attrs; }; }]; customPkgs = pkgSet; }