Home

nur @main - refs - log -
-
https://git.jolheiser.com/nur.git
My NUR
tree log patch
Clean up the filtering
Francesco Gazzetta <fgaz@fgaz.me>
5 years ago
2 changed files, 26 additions(+), 25 deletions(-)
M non-broken.nix -> non-broken.nix
diff --git a/non-broken.nix b/non-broken.nix
index b9a2cf9c6501ea634a8dd95428f855501b436b61..35778c207769e11cc758be656b1f8461bd05576c 100644
--- a/non-broken.nix
+++ b/non-broken.nix
@@ -4,24 +4,23 @@ # broken your CI will not try to build them and the non-broken packages will
 # 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; })
 
M overlay.nix -> overlay.nix
diff --git a/overlay.nix b/overlay.nix
index 082b03836fd169bc00f6093001bf9c51459c999c..bda4332a081fcd8c713733a27a02f0dc312cd32c 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -4,18 +4,20 @@ # to your configuration.
 
 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; })