From a2c4419636802218e2cac198ba1bb55a37b2feff Mon Sep 17 00:00:00 2001 From: pacien Date: Wed, 2 Dec 2020 16:40:58 +0100 Subject: nixos/ssmtp: fix configuration generator to accomodate ssmtp This replaces `concatStringsSep "\n"` with the proper generator to make sure that the generated configuration file ends with a trailing `\n`, which is required by ssmtp's picky configuration parser to take the last configuration key into account. GitHub: closes #105704 --- nixos/modules/programs/ssmtp.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/nixos/modules/programs/ssmtp.nix b/nixos/modules/programs/ssmtp.nix index 1f49ddc91bb..8039763facc 100644 --- a/nixos/modules/programs/ssmtp.nix +++ b/nixos/modules/programs/ssmtp.nix @@ -162,15 +162,16 @@ in (mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; }) ]; - environment.etc."ssmtp/ssmtp.conf".source = - let - toStr = value: + # careful here: ssmtp REQUIRES all config lines to end with a newline char! + environment.etc."ssmtp/ssmtp.conf".text = with generators; toKeyValue { + mkKeyValue = mkKeyValueDefault { + mkValueString = value: if value == true then "YES" else if value == false then "NO" - else builtins.toString value + else mkValueStringDefault {} value ; - in - pkgs.writeText "ssmtp.conf" (concatStringsSep "\n" (mapAttrsToList (key: value: "${key}=${toStr value}") cfg.settings)); + } "="; + } cfg.settings; environment.systemPackages = [pkgs.ssmtp]; -- cgit 1.4.1