From 1291bb433bb32e4efe320aeb8d422aefbcfbacd1 Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 8 Oct 2022 23:12:57 +0200 Subject: [PATCH] tv ejabberd: change YAML formatting style --- tv/3modules/ejabberd/default.nix | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/tv/3modules/ejabberd/default.nix b/tv/3modules/ejabberd/default.nix index 2966a4f60..2a87b59c0 100644 --- a/tv/3modules/ejabberd/default.nix +++ b/tv/3modules/ejabberd/default.nix @@ -25,7 +25,32 @@ in { }; configFile = mkOption { type = types.either types.package types.absolute-pathname; - default = settingsFormat.generate "ejabberd.yaml" cfg.settings; + default = + (settingsFormat.generate "ejabberd.yaml" cfg.settings) + # XXX ejabberd cannot parse MQTT topic filters enclosed in single + # quotes. By changing the YAML formatting style, double quotes will + # be used instead. + # + # Related error message: + # Invalid value of option modules->mod_mqtt->access_publish: + # Malformed topic filter + # + .overrideAttrs (old: { + nativeBuildInputs = + filter + (pkg: (parseDrvName pkg.name).name != "remarshal") + old.nativeBuildInputs + ++ + singleton (pkgs.symlinkJoin { + name = "remarshal"; + paths = [ + (pkgs.writeDashBin "json2yaml" '' + exec ${pkgs.remarshal}/bin/json2yaml --yaml-style \> "$@" + '') + pkgs.remarshal + ]; + }); + }); }; ciphers = mkOption { type = types.listOf types.str;