20 lines
666 B
Nix
20 lines
666 B
Nix
|
{ inputs, outputs }:
|
||
|
let
|
||
|
inherit (inputs.nixpkgs) lib;
|
||
|
|
||
|
notBroken = pkg: !(pkg.meta.broken or false);
|
||
|
isDistributable = pkg: (pkg.meta.license or { redistributable = true; }).redistributable;
|
||
|
hasPlatform = sys: pkg: lib.elem sys (pkg.meta.platforms or [ sys ]);
|
||
|
filterValidPkgs =
|
||
|
sys: pkgs:
|
||
|
lib.filterAttrs (
|
||
|
_: pkg: lib.isDerivation pkg && hasPlatform sys pkg && notBroken pkg && isDistributable pkg
|
||
|
) pkgs;
|
||
|
in
|
||
|
# getCfg = _: cfg: cfg.config.system.build.toplevel;
|
||
|
{
|
||
|
# hosts = lib.mapAttrs getCfg outputs.nixosConfigurations;
|
||
|
inherit (outputs) devShells checks formatter;
|
||
|
packages = lib.mapAttrs filterValidPkgs outputs.packages;
|
||
|
}
|