29 lines
570 B
Nix
29 lines
570 B
Nix
{
|
|
sources ? import ./npins,
|
|
pkgs ? import sources.nixpkgs { config.allowUnfree = true; },
|
|
...
|
|
}:
|
|
|
|
let
|
|
inherit (pkgs.lib) callPackageWith;
|
|
|
|
callPackage = callPackageWith (pkgs // self);
|
|
|
|
listDirs =
|
|
dir:
|
|
let
|
|
entries = builtins.readDir dir;
|
|
in
|
|
builtins.filter (n: entries.${n} == "directory") (builtins.attrNames entries);
|
|
|
|
mkPackages =
|
|
fun: dir:
|
|
builtins.map (name: {
|
|
inherit name;
|
|
value = fun (dir + "/${name}") { };
|
|
}) (listDirs dir);
|
|
|
|
self = builtins.listToAttrs (mkPackages callPackage ./by-name);
|
|
in
|
|
self
|