From 91d9c159da33cee81db80eca5643493ce2c65522 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Mon, 5 Feb 2024 14:41:25 +0100 Subject: nixos/matrix-synapse: fix recursive filtering of null values Using `filterAttrsRecursive` is not sufficient to account for a nested attribute set with list values, like used for listeners. --- nixos/modules/services/matrix/synapse.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/matrix/synapse.nix b/nixos/modules/services/matrix/synapse.nix index a6304d3533871..e3f9c7742cc7d 100644 --- a/nixos/modules/services/matrix/synapse.nix +++ b/nixos/modules/services/matrix/synapse.nix @@ -6,8 +6,16 @@ let cfg = config.services.matrix-synapse; format = pkgs.formats.yaml { }; + filterRecursiveNull = o: + if isAttrs o then + mapAttrs (_: v: filterRecursiveNull v) (filterAttrs (_: v: v != null) o) + else if isList o then + map filterRecursiveNull (filter (v: v != null) o) + else + o; + # remove null values from the final configuration - finalSettings = lib.filterAttrsRecursive (_: v: v != null) cfg.settings; + finalSettings = filterRecursiveNull cfg.settings; configFile = format.generate "homeserver.yaml" finalSettings; usePostgresql = cfg.settings.database.name == "psycopg2"; -- cgit 1.4.1