From 3fa14ebe71e8384b90794688bbefc680644ca1e2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 23 Sep 2021 21:55:17 +0200 Subject: [PATCH] lib: attrs: add 'recursiveMerge' --- lib/attrs.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/attrs.nix b/lib/attrs.nix index 84b63c7..75114b2 100644 --- a/lib/attrs.nix +++ b/lib/attrs.nix @@ -1,6 +1,13 @@ { lib, ... }: let - inherit (lib) filterAttrs listToAttrs mapAttrs' nameValuePair; + inherit (lib) + filterAttrs + foldl + listToAttrs + mapAttrs' + nameValuePair + recursiveUpdate + ; in { # Filter a generated set of attrs using a predicate function. @@ -19,6 +26,13 @@ in # attrs genAttrs' = values: f: listToAttrs (map f values); + # Merge a list of attrs recursively, later values override previous ones. + # + # recursiveMerge :: + # [ attrs ] + # attrs + recursiveMerge = foldl recursiveUpdate { }; + # Rename each of the attributes in an attribute set using the mapping function # # renameAttrs ::