mbsync: extend config type with list of strings
Some configuration options can take space separated strings; for example `SSLVersions` can be configured with multiple allowed versions. SSLVersions TLSv1.3 TLSv1.2 This can now be represented in Home Manager. SSLVersions = [ “TLSv1.3” “TLSv1.2” ]; In implementing this change, it uses oneOf for config type, as it is a cleaner way to represent the union than the nested eithers formulation. Also add SSLVersions to test lists of strings in `account.extraConfig`.
This commit is contained in:
parent
df79df8be1
commit
41790ba656
|
@ -4,7 +4,8 @@ with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
extraConfigType = with lib.types; attrsOf (either (either str int) bool);
|
extraConfigType = with lib.types;
|
||||||
|
attrsOf (oneOf [ str int bool (listOf str) ]);
|
||||||
|
|
||||||
perAccountGroups = { name, config, ... }: {
|
perAccountGroups = { name, config, ... }: {
|
||||||
options = {
|
options = {
|
||||||
|
|
|
@ -57,6 +57,7 @@ CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||||
Host imap.example.com
|
Host imap.example.com
|
||||||
PassCmd password-command
|
PassCmd password-command
|
||||||
SSLType IMAPS
|
SSLType IMAPS
|
||||||
|
SSLVersions TLSv1.3 TLSv1.2
|
||||||
User home.manager
|
User home.manager
|
||||||
|
|
||||||
IMAPStore hm@example.com-remote
|
IMAPStore hm@example.com-remote
|
||||||
|
|
|
@ -21,6 +21,7 @@ with lib;
|
||||||
accounts.email.accounts = {
|
accounts.email.accounts = {
|
||||||
"hm@example.com".mbsync = {
|
"hm@example.com".mbsync = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
extraConfig.account.SSLVersions = [ "TLSv1.3" "TLSv1.2" ];
|
||||||
groups.inboxes = {
|
groups.inboxes = {
|
||||||
channels = {
|
channels = {
|
||||||
inbox1 = {
|
inbox1 = {
|
||||||
|
|
Loading…
Reference in a new issue