Clean up the filtering
This commit is contained in:
parent
ea430a68d0
commit
1110dde8dc
|
@ -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; })
|
||||
|
||||
|
|
22
overlay.nix
22
overlay.nix
|
@ -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; })
|
||||
|
||||
|
|
Loading…
Reference in New Issue