diff --git a/modules/programs/mbsync-accounts.nix b/modules/programs/mbsync-accounts.nix index 4de1965f..19f926c8 100644 --- a/modules/programs/mbsync-accounts.nix +++ b/modules/programs/mbsync-accounts.nix @@ -6,6 +6,48 @@ let extraConfigType = with lib.types; attrsOf (either (either str int) bool); + # Options for configuring channel(s) that will be composed together into a group. + groupChannel = { config, ... }: { + options = { + name = mkOption { + type = types.str; + default = "DEFAULT"; + description = '' + The unique name for THIS channel in THIS group. The group will refer to + this channel by this name. + + In addition, you can manually sync just this channel by specifying this + name to mbsync on the command line. + ''; + }; + + masterPattern = mkOption { + type = types.str; + default = ""; + description = '' + Regular expression pattern for which mailboxes on the remote mail server + to sync. + + If this is left as the default, then mbsync will default to the pattern + INBOX. + ''; + }; + + slavePattern = mkOption { + type = types.str; + default = ""; + description = '' + Name for where mail coming from the master mail server will end up + locally. The mailbox specified by the master's pattern will be placed + in this directory. + + If this is left as the default, then mbsync will default to the pattern + INBOX. + ''; + }; + }; + }; + in { options.mbsync = { enable = mkEnableOption "synchronization using mbsync";