From b6ed3b8f402893df91a8e21ce993520301c2f076 Mon Sep 17 00:00:00 2001 From: Julien Moutinho Date: Mon, 26 Dec 2022 23:39:36 +0100 Subject: [PATCH] nixos/public-inbox: explicit a few more freeform settings --- nixos/modules/services/mail/public-inbox.nix | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/mail/public-inbox.nix b/nixos/modules/services/mail/public-inbox.nix index 9cd6726e6cb2..099997fa9fe9 100644 --- a/nixos/modules/services/mail/public-inbox.nix +++ b/nixos/modules/services/mail/public-inbox.nix @@ -275,9 +275,8 @@ in default = {}; description = lib.mdDoc "public inboxes"; type = types.submodule { - # Keeping in line with the tradition of unnecessarily specific types, allow users to set - # freeform settings either globally under the `publicinbox` section, or for specific - # inboxes through additional nesting. + # Support both global options like `services.public-inbox.settings.publicinbox.imapserver` + # and inbox specific options like `services.public-inbox.settings.publicinbox.foo.address`. freeformType = with types; attrsOf (oneOf [ iniAtom (attrsOf iniAtom) ]); options.css = mkOption { @@ -285,12 +284,24 @@ in default = []; description = lib.mdDoc "The local path name of a CSS file for the PSGI web interface."; }; + options.imapserver = mkOption { + type = with types; listOf str; + default = []; + example = [ "imap.public-inbox.org" ]; + description = lib.mdDoc "IMAP URLs to this public-inbox instance"; + }; options.nntpserver = mkOption { type = with types; listOf str; default = []; example = [ "nntp://news.public-inbox.org" "nntps://news.public-inbox.org" ]; description = lib.mdDoc "NNTP URLs to this public-inbox instance"; }; + options.pop3server = mkOption { + type = with types; listOf str; + default = []; + example = [ "pop.public-inbox.org" ]; + description = lib.mdDoc "POP3 URLs to this public-inbox instance"; + }; options.wwwlisting = mkOption { type = with types; enum [ "all" "404" "match=domain" ]; default = "404";