summary refs log tree commit diff
path: root/nixos/modules/services/mail/dovecot.nix
diff options
context:
space:
mode:
authorrnhmjoj <rnhmjoj@inventati.org>2019-09-14 19:51:29 +0200
committerworldofpeace <worldofpeace@protonmail.ch>2020-01-06 10:39:18 -0500
commit1d61efb7f177f7b70c467ab4940fde0a3481d4dc (patch)
tree860cce85acd87bc07aa2d11f4feac5d0df48a5c0 /nixos/modules/services/mail/dovecot.nix
parent6bd13ccd8e7fd1f241eb655f7112df1ed2889a3a (diff)
downloadnixpkgs-1d61efb7f177f7b70c467ab4940fde0a3481d4dc.tar
nixpkgs-1d61efb7f177f7b70c467ab4940fde0a3481d4dc.tar.gz
nixpkgs-1d61efb7f177f7b70c467ab4940fde0a3481d4dc.tar.bz2
nixpkgs-1d61efb7f177f7b70c467ab4940fde0a3481d4dc.tar.lz
nixpkgs-1d61efb7f177f7b70c467ab4940fde0a3481d4dc.tar.xz
nixpkgs-1d61efb7f177f7b70c467ab4940fde0a3481d4dc.tar.zst
nixpkgs-1d61efb7f177f7b70c467ab4940fde0a3481d4dc.zip
treewide: use attrs instead of list for types.loaOf options
Diffstat (limited to 'nixos/modules/services/mail/dovecot.nix')
-rw-r--r--nixos/modules/services/mail/dovecot.nix52
1 files changed, 24 insertions, 28 deletions
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index 2cda8c49f5e..0be60d8ff76 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -310,36 +310,32 @@ in
      ++ optional cfg.enablePop3 "pop3"
      ++ optional cfg.enableLmtp "lmtp";
 
-    users.users = [
-      { name = "dovenull";
-        uid = config.ids.uids.dovenull2;
-        description = "Dovecot user for untrusted logins";
-        group = "dovenull";
-      }
-    ] ++ optional (cfg.user == "dovecot2")
-         { name = "dovecot2";
-           uid = config.ids.uids.dovecot2;
+    users.users = {
+      dovenull =
+        { uid = config.ids.uids.dovenull2;
+          description = "Dovecot user for untrusted logins";
+          group = "dovenull";
+        };
+    } // optionalAttrs (cfg.user == "dovecot2") {
+      dovecot2 =
+         { uid = config.ids.uids.dovecot2;
            description = "Dovecot user";
            group = cfg.group;
-         }
-      ++ optional (cfg.createMailUser && cfg.mailUser != null)
-         ({ name = cfg.mailUser;
-            description = "Virtual Mail User";
-         } // optionalAttrs (cfg.mailGroup != null) {
-           group = cfg.mailGroup;
-         });
-
-    users.groups = optional (cfg.group == "dovecot2")
-      { name = "dovecot2";
-        gid = config.ids.gids.dovecot2;
-      }
-    ++ optional (cfg.createMailUser && cfg.mailGroup != null)
-      { name = cfg.mailGroup;
-      }
-    ++ singleton
-      { name = "dovenull";
-        gid = config.ids.gids.dovenull2;
-      };
+         };
+    } // optionalAttrs (cfg.createMailUser && cfg.mailUser != null) {
+      ${cfg.mailUser} =
+        { description = "Virtual Mail User"; } //
+        optionalAttrs (cfg.mailGroup != null)
+          { group = cfg.mailGroup; };
+    };
+
+    users.groups = {
+      dovenull.gid = config.ids.gids.dovenull2;
+    } // optionalAttrs (cfg.group == "dovecot2") {
+      dovecot2.gid = config.ids.gids.dovecot2;
+    } // optionalAttrs (cfg.createMailUser && cfg.mailGroup != null) {
+      ${cfg.mailgroup} = { };
+    };
 
     environment.etc."dovecot/modules".source = modulesDir;
     environment.etc."dovecot/dovecot.conf".source = cfg.configFile;