1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-09 17:46:29 +09:00

nullmailer: simplify config generation

(cherry picked from commit 91eb6cf82c)
This commit is contained in:
Joerg Thalheim 2017-09-28 10:47:19 +01:00 committed by Robin Gloster
parent 4a8c74019e
commit c12a3e2d47
No known key found for this signature in database
GPG key ID: D5C458DF6DD97EDF

View file

@ -194,18 +194,10 @@ with lib;
environment = {
systemPackages = [ pkgs.nullmailer ];
etc = let
getval = attr: builtins.getAttr attr cfg.config;
attrs = builtins.attrNames cfg.config;
remotesFilter = if cfg.remotesFile != null
then (attr: attr != "remotes")
else (_: true);
optionalRemotesFileLink = if cfg.remotesFile != null
then { "nullmailer/remotes".source = cfg.remotesFile; }
else {};
attrs' = builtins.filter (attr: (! isNull (getval attr)) && (remotesFilter attr)) attrs;
validAttrs = filterAttrs (name: value: value != null) cfg.config;
in
(foldl' (as: attr: as // { "nullmailer/${attr}".text = getval attr; }) {} attrs')
// optionalRemotesFileLink;
(foldl' (as: name: as // { "nullmailer/${name}".text = validAttrs.${name}; }) {} (attrNames validAttrs))
// optionalAttrs (cfg.remotesFile != null) { "nullmailer/remotes".source = cfg.remotesFile; };
};
users = {