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

View file

@ -4,18 +4,20 @@
self: super:
let filterSet =
(f: g: s: builtins.listToAttrs
(map
(n: { name = n; value = builtins.getAttr n s; })
(builtins.filter
(n: f n && g (builtins.getAttr n s))
(builtins.attrNames s)
)
let
filterSet =
(f: g: s: builtins.listToAttrs
(map
(n: { name = n; value = builtins.getAttr n s; })
(builtins.filter
(n: f n && g (builtins.getAttr n s))
(builtins.attrNames s)
)
);
)
);
isReserved = n: builtins.elem n ["lib" "overlays" "modules"];
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
(import ./default.nix { pkgs = super; })