https://git.jolheiser.com/nur.git
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
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; })
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
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; })