Clean up the filtering

This commit is contained in:
Francesco Gazzetta 2019-03-23 19:03:43 +01:00
parent ea430a68d0
commit 1110dde8dc
2 changed files with 26 additions and 25 deletions

View file

@ -4,7 +4,8 @@
# be added to the cache. # be added to the cache.
{ pkgs ? import <nixpkgs> {} }: { pkgs ? import <nixpkgs> {} }:
let filterSet = let
filterSet =
(f: g: s: builtins.listToAttrs (f: g: s: builtins.listToAttrs
(map (map
(n: { name = n; value = builtins.getAttr n s; }) (n: { name = n; value = builtins.getAttr n s; })
@ -14,14 +15,12 @@ let filterSet =
) )
) )
); );
isReserved = n: builtins.elem n ["lib" "overlays" "modules"];
isBroken = p: ({ meta.broken = false; } // p).meta.broken;
in filterSet in filterSet
(n: !(n=="lib"||n=="overlays"||n=="modules")) # filter out non-packages (n: !(isReserved n)) # filter out non-packages
(p: (builtins.isAttrs p) (p: (builtins.isAttrs p)
&& !( && !(isBroken p)
(builtins.hasAttr "meta" p)
&& (builtins.hasAttr "broken" p.meta)
&& (p.meta.broken)
)
) )
(import ./default.nix { inherit pkgs; }) (import ./default.nix { inherit pkgs; })

View file

@ -4,7 +4,8 @@
self: super: self: super:
let filterSet = let
filterSet =
(f: g: s: builtins.listToAttrs (f: g: s: builtins.listToAttrs
(map (map
(n: { name = n; value = builtins.getAttr n s; }) (n: { name = n; value = builtins.getAttr n s; })
@ -14,8 +15,9 @@ let filterSet =
) )
) )
); );
isReserved = n: builtins.elem n ["lib" "overlays" "modules"];
in filterSet in filterSet
(n: !(n=="lib"||n=="overlays"||n=="modules")) # filter out non-packages (n: !(isReserved n)) # filter out non-packages
(p: true) # all packages are ok (p: true) # all packages are ok
(import ./default.nix { pkgs = super; }) (import ./default.nix { pkgs = super; })