diff --git a/overlay.nix b/overlay.nix index 122729de0fdc9ac97ec903c039bb438d92958ad6..bda4332a081fcd8c713733a27a02f0dc312cd32c 100644 --- a/overlay.nix +++ b/overlay.nix @@ -1,18 +1,23 @@ -# You can use this file as a nixpkgs overlay. This is useful in the -# case where you don't want to add the whole NUR namespace to your -# configuration. +# You can use this file as a nixpkgs overlay. +# It's useful in the case where you don't want to add the whole NUR namespace +# 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) + ) + ) + ); + isReserved = n: builtins.elem n ["lib" "overlays" "modules"]; +in filterSet + (n: !(isReserved n)) # filter out non-packages + (p: true) # all packages are ok + (import ./default.nix { pkgs = super; }) - isReserved = n: n == "lib" || n == "overlays" || n == "modules"; - nameValuePair = n: v: { name = n; value = v; }; - nurAttrs = import ./default.nix { pkgs = super; }; - -in - - builtins.listToAttrs - (map (n: nameValuePair n nurAttrs.${n}) - (builtins.filter (n: !isReserved n) - (builtins.attrNames nurAttrs)))