{ flake, ... }: let inherit (flake) inputs; inherit (inputs) self; pkgsDir = ../packages; # This must be absolute or relative to this file # List only subdirs with default.nix packageDirs = builtins.filter (name: builtins.pathExists (pkgsDir + "/${name}/default.nix")) ( builtins.attrNames (builtins.readDir pkgsDir) ); in self: super: builtins.listToAttrs ( map (name: { name = name; value = self.callPackage (pkgsDir + "/${name}") { }; }) packageDirs )