diff options
author | Aaron Andersen <aaron@fosslib.net> | 2020-06-06 10:58:44 -0400 |
---|---|---|
committer | Aaron Andersen <aaron@fosslib.net> | 2020-06-07 10:28:22 -0400 |
commit | 6394b12a07900d8acc01dc96a9669bed6549d1f9 (patch) | |
tree | f8e00d944b0a3ce7b291958d4e3d42977d76d1e2 | |
parent | 7a07f2a5edd737cac1bc8613b7ac4ef35b221572 (diff) | |
download | nixpkgs-6394b12a07900d8acc01dc96a9669bed6549d1f9.tar nixpkgs-6394b12a07900d8acc01dc96a9669bed6549d1f9.tar.gz nixpkgs-6394b12a07900d8acc01dc96a9669bed6549d1f9.tar.bz2 nixpkgs-6394b12a07900d8acc01dc96a9669bed6549d1f9.tar.lz nixpkgs-6394b12a07900d8acc01dc96a9669bed6549d1f9.tar.xz nixpkgs-6394b12a07900d8acc01dc96a9669bed6549d1f9.tar.zst nixpkgs-6394b12a07900d8acc01dc96a9669bed6549d1f9.zip |
nixos/ssmtp: add settings option
-rw-r--r-- | nixos/modules/programs/ssmtp.nix | 50 |
1 files changed, 37 insertions, 13 deletions
diff --git a/nixos/modules/programs/ssmtp.nix b/nixos/modules/programs/ssmtp.nix index c7a94739349..eee36b6ae57 100644 --- a/nixos/modules/programs/ssmtp.nix +++ b/nixos/modules/programs/ssmtp.nix @@ -45,6 +45,21 @@ in ''; }; + settings = mkOption { + type = with types; attrsOf (oneOf [ bool str ]); + default = {}; + description = '' + <citerefentry><refentrytitle>ssmtp</refentrytitle><manvolnum>5</manvolnum></citerefentry> configuration. Refer + to <link xlink:href="https://linux.die.net/man/5/ssmtp.conf"/> for details on supported values. + ''; + example = literalExample '' + { + Debug = true; + FromLineOverride = false; + } + ''; + }; + hostName = mkOption { type = types.str; example = "mail.example.org"; @@ -148,19 +163,28 @@ in text = cfg.authPass; }))); - environment.etc."ssmtp/ssmtp.conf".text = - let yesNo = yes : if yes then "YES" else "NO"; in - '' - MailHub=${cfg.hostName} - FromLineOverride=YES - ${optionalString (cfg.root != "") "root=${cfg.root}"} - ${optionalString (cfg.domain != "") "rewriteDomain=${cfg.domain}"} - UseTLS=${yesNo cfg.useTLS} - UseSTARTTLS=${yesNo cfg.useSTARTTLS} - #Debug=YES - ${optionalString (cfg.authUser != "") "AuthUser=${cfg.authUser}"} - ${optionalString (cfg.authPassFile != null) "AuthPassFile=${cfg.authPassFile}"} - ''; + services.ssmtp.settings = mkMerge [ + ({ + MailHub = cfg.hostName; + FromLineOverride = mkDefault true; + UseTLS = cfg.useTLS; + UseSTARTTLS = cfg.useSTARTTLS; + }) + (mkIf (cfg.root != "") { root = cfg.root; }) + (mkIf (cfg.domain != "") { rewriteDomain = cfg.domain; }) + (mkIf (cfg.authUser != "") { AuthUser = cfg.authUser; }) + (mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; }) + ]; + + environment.etc."ssmtp/ssmtp.conf".source = + let + toStr = value: + if value == true then "YES" + else if value == false then "NO" + else builtins.toString value + ; + in + pkgs.writeText "ssmtp.conf" (concatStringsSep "\n" (mapAttrsToList (key: value: "${key}=${toStr value}") cfg.settings)); environment.systemPackages = [pkgs.ssmtp]; |