From 83b17c5ceecc9b8c9a285feae8f2b516740ab915 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Sat, 6 Jan 2024 15:57:47 +0100 Subject: Make config merging smarter --- default.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'default.nix') diff --git a/default.nix b/default.nix index ca1aa5f..d97ecb4 100644 --- a/default.nix +++ b/default.nix @@ -8,7 +8,20 @@ }: let - config = (import ./config/default.nix) // hostConfig ; + recursiveMerge = with pkgs.lib; attrList: + let f = attrPath: + zipAttrsWith (n: values: + if tail values == [] + then head values + else if all isList values + then unique (concatLists values) + else if all isAttrs values + then f (attrPath ++ [n]) values + else last values + ); + in f [] attrList; + + config = recursiveMerge [ (import ./config/default.nix) hostConfig ]; in rec { -- cgit v1.2.3