mirror of
https://github.com/soywod/himalaya.git
synced 2024-07-08 18:45:13 +00:00
add back notmuch features (part 1)
This commit is contained in:
parent
a700f358fb
commit
3137e1e851
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -1217,7 +1217,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "email-lib"
|
name = "email-lib"
|
||||||
version = "0.20.1"
|
version = "0.20.1"
|
||||||
source = "git+https://git.sr.ht/~soywod/pimalaya#aadfde30406f97b480ee673ec04f4d79b9e8d8b3"
|
source = "git+https://git.sr.ht/~soywod/pimalaya#0454027ca9bfba17931e7414e4463dacf8c028f8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"advisory-lock",
|
"advisory-lock",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
|
|
@ -11,6 +11,8 @@ use email::account::sync::config::SyncConfig;
|
||||||
use email::imap::config::ImapConfig;
|
use email::imap::config::ImapConfig;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::maildir::config::MaildirConfig;
|
use email::maildir::config::MaildirConfig;
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
use email::notmuch::config::NotmuchConfig;
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
use email::sendmail::config::SendmailConfig;
|
use email::sendmail::config::SendmailConfig;
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
|
|
|
@ -8,79 +8,113 @@ use std::ops::Deref;
|
||||||
|
|
||||||
use email::account::config::AccountConfig;
|
use email::account::config::AccountConfig;
|
||||||
#[cfg(all(feature = "envelope-get", feature = "imap"))]
|
#[cfg(all(feature = "envelope-get", feature = "imap"))]
|
||||||
use email::envelope::get::imap::GetEnvelopeImap;
|
use email::envelope::get::imap::GetImapEnvelope;
|
||||||
#[cfg(all(feature = "envelope-get", feature = "maildir"))]
|
#[cfg(all(feature = "envelope-get", feature = "maildir"))]
|
||||||
use email::envelope::get::maildir::GetEnvelopeMaildir;
|
use email::envelope::get::maildir::GetMaildirEnvelope;
|
||||||
|
#[cfg(all(feature = "envelope-get", feature = "notmuch"))]
|
||||||
|
use email::envelope::get::notmuch::GetNotmuchEnvelope;
|
||||||
#[cfg(all(feature = "envelope-list", feature = "imap"))]
|
#[cfg(all(feature = "envelope-list", feature = "imap"))]
|
||||||
use email::envelope::list::imap::ListEnvelopesImap;
|
use email::envelope::list::imap::ListImapEnvelopes;
|
||||||
#[cfg(all(feature = "envelope-list", feature = "maildir"))]
|
#[cfg(all(feature = "envelope-list", feature = "maildir"))]
|
||||||
use email::envelope::list::maildir::ListEnvelopesMaildir;
|
use email::envelope::list::maildir::ListMaildirEnvelopes;
|
||||||
|
#[cfg(all(feature = "envelope-list", feature = "notmuch"))]
|
||||||
|
use email::envelope::list::notmuch::ListNotmuchEnvelopes;
|
||||||
#[cfg(all(feature = "envelope-watch", feature = "imap"))]
|
#[cfg(all(feature = "envelope-watch", feature = "imap"))]
|
||||||
use email::envelope::watch::imap::WatchImapEnvelopes;
|
use email::envelope::watch::imap::WatchImapEnvelopes;
|
||||||
#[cfg(all(feature = "envelope-watch", feature = "maildir"))]
|
#[cfg(all(feature = "envelope-watch", feature = "maildir"))]
|
||||||
use email::envelope::watch::maildir::WatchMaildirEnvelopes;
|
use email::envelope::watch::maildir::WatchMaildirEnvelopes;
|
||||||
|
// #[cfg(all(feature = "envelope-watch", feature = "notmuch"))]
|
||||||
|
// use email::envelope::watch::notmuch::WatchNotmuchEnvelopes;
|
||||||
#[cfg(feature = "message-add")]
|
#[cfg(feature = "message-add")]
|
||||||
use email::envelope::SingleId;
|
use email::envelope::SingleId;
|
||||||
#[cfg(all(feature = "flag-add", feature = "imap"))]
|
#[cfg(all(feature = "flag-add", feature = "imap"))]
|
||||||
use email::flag::add::imap::AddFlagsImap;
|
use email::flag::add::imap::AddImapFlags;
|
||||||
#[cfg(all(feature = "flag-add", feature = "maildir"))]
|
#[cfg(all(feature = "flag-add", feature = "maildir"))]
|
||||||
use email::flag::add::maildir::AddFlagsMaildir;
|
use email::flag::add::maildir::AddMaildirFlags;
|
||||||
|
#[cfg(all(feature = "flag-add", feature = "notmuch"))]
|
||||||
|
use email::flag::add::notmuch::AddNotmuchFlags;
|
||||||
#[cfg(all(feature = "flag-remove", feature = "imap"))]
|
#[cfg(all(feature = "flag-remove", feature = "imap"))]
|
||||||
use email::flag::remove::imap::RemoveFlagsImap;
|
use email::flag::remove::imap::RemoveImapFlags;
|
||||||
#[cfg(all(feature = "flag-remove", feature = "maildir"))]
|
#[cfg(all(feature = "flag-remove", feature = "maildir"))]
|
||||||
use email::flag::remove::maildir::RemoveFlagsMaildir;
|
use email::flag::remove::maildir::RemoveMaildirFlags;
|
||||||
|
#[cfg(all(feature = "flag-remove", feature = "notmuch"))]
|
||||||
|
use email::flag::remove::notmuch::RemoveNotmuchFlags;
|
||||||
#[cfg(all(feature = "flag-set", feature = "imap"))]
|
#[cfg(all(feature = "flag-set", feature = "imap"))]
|
||||||
use email::flag::set::imap::SetFlagsImap;
|
use email::flag::set::imap::SetImapFlags;
|
||||||
#[cfg(all(feature = "flag-set", feature = "maildir"))]
|
#[cfg(all(feature = "flag-set", feature = "maildir"))]
|
||||||
use email::flag::set::maildir::SetFlagsMaildir;
|
use email::flag::set::maildir::SetMaildirFlags;
|
||||||
|
#[cfg(all(feature = "flag-set", feature = "notmuch"))]
|
||||||
|
use email::flag::set::notmuch::SetNotmuchFlags;
|
||||||
#[cfg(all(feature = "folder-add", feature = "imap"))]
|
#[cfg(all(feature = "folder-add", feature = "imap"))]
|
||||||
use email::folder::add::imap::AddFolderImap;
|
use email::folder::add::imap::AddImapFolder;
|
||||||
#[cfg(all(feature = "folder-add", feature = "maildir"))]
|
#[cfg(all(feature = "folder-add", feature = "maildir"))]
|
||||||
use email::folder::add::maildir::AddFolderMaildir;
|
use email::folder::add::maildir::AddMaildirFolder;
|
||||||
|
#[cfg(all(feature = "folder-add", feature = "notmuch"))]
|
||||||
|
use email::folder::add::notmuch::AddNotmuchFolder;
|
||||||
#[cfg(all(feature = "folder-delete", feature = "imap"))]
|
#[cfg(all(feature = "folder-delete", feature = "imap"))]
|
||||||
use email::folder::delete::imap::DeleteFolderImap;
|
use email::folder::delete::imap::DeleteImapFolder;
|
||||||
#[cfg(all(feature = "folder-delete", feature = "maildir"))]
|
#[cfg(all(feature = "folder-delete", feature = "maildir"))]
|
||||||
use email::folder::delete::maildir::DeleteFolderMaildir;
|
use email::folder::delete::maildir::DeleteMaildirFolder;
|
||||||
|
// #[cfg(all(feature = "folder-delete", feature = "notmuch"))]
|
||||||
|
// use email::folder::delete::notmuch::DeleteNotmuchFolder;
|
||||||
#[cfg(all(feature = "folder-expunge", feature = "imap"))]
|
#[cfg(all(feature = "folder-expunge", feature = "imap"))]
|
||||||
use email::folder::expunge::imap::ExpungeFolderImap;
|
use email::folder::expunge::imap::ExpungeImapFolder;
|
||||||
#[cfg(all(feature = "folder-expunge", feature = "maildir"))]
|
#[cfg(all(feature = "folder-expunge", feature = "maildir"))]
|
||||||
use email::folder::expunge::maildir::ExpungeFolderMaildir;
|
use email::folder::expunge::maildir::ExpungeMaildirFolder;
|
||||||
|
// #[cfg(all(feature = "folder-expunge", feature = "notmuch"))]
|
||||||
|
// use email::folder::expunge::notmuch::ExpungeNotmuchFolder;
|
||||||
#[cfg(all(feature = "folder-list", feature = "imap"))]
|
#[cfg(all(feature = "folder-list", feature = "imap"))]
|
||||||
use email::folder::list::imap::ListFoldersImap;
|
use email::folder::list::imap::ListImapFolders;
|
||||||
#[cfg(all(feature = "folder-list", feature = "maildir"))]
|
#[cfg(all(feature = "folder-list", feature = "maildir"))]
|
||||||
use email::folder::list::maildir::ListFoldersMaildir;
|
use email::folder::list::maildir::ListMaildirFolders;
|
||||||
|
#[cfg(all(feature = "folder-list", feature = "notmuch"))]
|
||||||
|
use email::folder::list::notmuch::ListNotmuchFolders;
|
||||||
#[cfg(all(feature = "folder-purge", feature = "imap"))]
|
#[cfg(all(feature = "folder-purge", feature = "imap"))]
|
||||||
use email::folder::purge::imap::PurgeFolderImap;
|
use email::folder::purge::imap::PurgeImapFolder;
|
||||||
|
// #[cfg(all(feature = "folder-purge", feature = "maildir"))]
|
||||||
|
// use email::folder::purge::maildir::PurgeMaildirFolder;
|
||||||
|
// #[cfg(all(feature = "folder-purge", feature = "notmuch"))]
|
||||||
|
// use email::folder::purge::notmuch::PurgeNotmuchFolder;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::imap::{ImapSessionBuilder, ImapSessionSync};
|
use email::imap::{ImapContextBuilder, ImapContextSync};
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
use email::maildir::config::MaildirConfig;
|
use email::maildir::config::MaildirConfig;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::maildir::{MaildirSessionBuilder, MaildirSessionSync};
|
use email::maildir::{MaildirContextBuilder, MaildirContextSync};
|
||||||
#[cfg(all(feature = "message-add", feature = "imap"))]
|
#[cfg(all(feature = "message-add", feature = "imap"))]
|
||||||
use email::message::add::imap::AddImapMessage;
|
use email::message::add::imap::AddImapMessage;
|
||||||
#[cfg(all(feature = "message-add", feature = "maildir"))]
|
#[cfg(all(feature = "message-add", feature = "maildir"))]
|
||||||
use email::message::add::maildir::AddMaildirMessage;
|
use email::message::add::maildir::AddMaildirMessage;
|
||||||
|
#[cfg(all(feature = "message-add", feature = "notmuch"))]
|
||||||
|
use email::message::add::notmuch::AddNotmuchMessage;
|
||||||
#[cfg(all(feature = "message-copy", feature = "imap"))]
|
#[cfg(all(feature = "message-copy", feature = "imap"))]
|
||||||
use email::message::copy::imap::CopyMessagesImap;
|
use email::message::copy::imap::CopyImapMessages;
|
||||||
#[cfg(all(feature = "message-copy", feature = "maildir"))]
|
#[cfg(all(feature = "message-copy", feature = "maildir"))]
|
||||||
use email::message::copy::maildir::CopyMessagesMaildir;
|
use email::message::copy::maildir::CopyMaildirMessages;
|
||||||
|
#[cfg(all(feature = "message-copy", feature = "notmuch"))]
|
||||||
|
use email::message::copy::notmuch::CopyNotmuchMessages;
|
||||||
#[cfg(all(feature = "message-get", feature = "imap"))]
|
#[cfg(all(feature = "message-get", feature = "imap"))]
|
||||||
use email::message::get::imap::GetMessagesImap;
|
use email::message::get::imap::GetImapMessages;
|
||||||
#[cfg(all(feature = "message-move", feature = "imap"))]
|
#[cfg(all(feature = "message-move", feature = "imap"))]
|
||||||
use email::message::move_::imap::MoveMessagesImap;
|
use email::message::move_::imap::MoveImapMessages;
|
||||||
#[cfg(all(feature = "message-move", feature = "maildir"))]
|
#[cfg(all(feature = "message-move", feature = "maildir"))]
|
||||||
use email::message::move_::maildir::MoveMessagesMaildir;
|
use email::message::move_::maildir::MoveMaildirMessages;
|
||||||
|
#[cfg(all(feature = "message-move", feature = "notmuch"))]
|
||||||
|
use email::message::move_::notmuch::MoveNotmuchMessages;
|
||||||
#[cfg(all(feature = "message-peek", feature = "imap"))]
|
#[cfg(all(feature = "message-peek", feature = "imap"))]
|
||||||
use email::message::peek::imap::PeekMessagesImap;
|
use email::message::peek::imap::PeekImapMessages;
|
||||||
#[cfg(all(feature = "message-peek", feature = "maildir"))]
|
#[cfg(all(feature = "message-peek", feature = "maildir"))]
|
||||||
use email::message::peek::maildir::PeekMessagesMaildir;
|
use email::message::peek::maildir::PeekMaildirMessages;
|
||||||
|
#[cfg(all(feature = "message-peek", feature = "notmuch"))]
|
||||||
|
use email::message::peek::notmuch::PeekNotmuchMessages;
|
||||||
#[cfg(any(feature = "message-peek", feature = "message-get"))]
|
#[cfg(any(feature = "message-peek", feature = "message-get"))]
|
||||||
use email::message::Messages;
|
use email::message::Messages;
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
use email::notmuch::{NotmuchContextBuilder, NotmuchContextSync};
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
use email::sendmail::SendmailContext;
|
use email::sendmail::SendmailContext;
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
use email::smtp::{SmtpClientBuilder, SmtpClientSync};
|
use email::smtp::{SmtpContextBuilder, SmtpContextSync};
|
||||||
|
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
use email::{
|
use email::{
|
||||||
|
@ -137,13 +171,15 @@ impl ToString for BackendKind {
|
||||||
#[derive(Clone, Default)]
|
#[derive(Clone, Default)]
|
||||||
pub struct BackendContextBuilder {
|
pub struct BackendContextBuilder {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
pub imap: Option<ImapSessionBuilder>,
|
pub imap: Option<ImapContextBuilder>,
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
pub maildir: Option<MaildirSessionBuilder>,
|
pub maildir: Option<MaildirContextBuilder>,
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
pub maildir_for_sync: Option<MaildirSessionBuilder>,
|
pub maildir_for_sync: Option<MaildirContextBuilder>,
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
pub notmuch: Option<NotmuchContextBuilder>,
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
pub smtp: Option<SmtpClientBuilder>,
|
pub smtp: Option<SmtpContextBuilder>,
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
pub sendmail: Option<SendmailContext>,
|
pub sendmail: Option<SendmailContext>,
|
||||||
}
|
}
|
||||||
|
@ -163,7 +199,7 @@ impl BackendContextBuilder {
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.filter(|_| kinds.contains(&&BackendKind::Imap))
|
.filter(|_| kinds.contains(&&BackendKind::Imap))
|
||||||
.map(|imap_config| {
|
.map(|imap_config| {
|
||||||
ImapSessionBuilder::new(account_config.clone(), imap_config.clone())
|
ImapContextBuilder::new(account_config.clone(), imap_config.clone())
|
||||||
.with_prebuilt_credentials()
|
.with_prebuilt_credentials()
|
||||||
});
|
});
|
||||||
match ctx_builder {
|
match ctx_builder {
|
||||||
|
@ -177,21 +213,21 @@ impl BackendContextBuilder {
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.filter(|_| kinds.contains(&&BackendKind::Maildir))
|
.filter(|_| kinds.contains(&&BackendKind::Maildir))
|
||||||
.map(|mdir_config| {
|
.map(|mdir_config| {
|
||||||
MaildirSessionBuilder::new(account_config.clone(), mdir_config.clone())
|
MaildirContextBuilder::new(account_config.clone(), mdir_config.clone())
|
||||||
}),
|
}),
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
maildir_for_sync: Some(MaildirConfig {
|
maildir_for_sync: Some(MaildirConfig {
|
||||||
root_dir: account_config.get_sync_dir()?,
|
root_dir: account_config.get_sync_dir()?,
|
||||||
})
|
})
|
||||||
.filter(|_| kinds.contains(&&BackendKind::MaildirForSync))
|
.filter(|_| kinds.contains(&&BackendKind::MaildirForSync))
|
||||||
.map(|mdir_config| MaildirSessionBuilder::new(account_config.clone(), mdir_config)),
|
.map(|mdir_config| MaildirContextBuilder::new(account_config.clone(), mdir_config)),
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
notmuch: toml_account_config
|
notmuch: toml_account_config
|
||||||
.notmuch
|
.notmuch
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.filter(|_| kinds.contains(&&BackendKind::Notmuch))
|
.filter(|_| kinds.contains(&&BackendKind::Notmuch))
|
||||||
.map(|notmuch_config| {
|
.map(|notmuch_config| {
|
||||||
NotmuchSessionBuilder::new(account_config.clone(), notmuch_config.clone())
|
NotmuchContextBuilder::new(account_config.clone(), notmuch_config.clone())
|
||||||
}),
|
}),
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
smtp: toml_account_config
|
smtp: toml_account_config
|
||||||
|
@ -199,7 +235,7 @@ impl BackendContextBuilder {
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.filter(|_| kinds.contains(&&BackendKind::Smtp))
|
.filter(|_| kinds.contains(&&BackendKind::Smtp))
|
||||||
.map(|smtp_config| {
|
.map(|smtp_config| {
|
||||||
SmtpClientBuilder::new(account_config.clone(), smtp_config.clone())
|
SmtpContextBuilder::new(account_config.clone(), smtp_config.clone())
|
||||||
}),
|
}),
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
sendmail: toml_account_config
|
sendmail: toml_account_config
|
||||||
|
@ -258,13 +294,15 @@ impl email::backend::BackendContextBuilder for BackendContextBuilder {
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct BackendContext {
|
pub struct BackendContext {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
pub imap: Option<ImapSessionSync>,
|
pub imap: Option<ImapContextSync>,
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
pub maildir: Option<MaildirSessionSync>,
|
pub maildir: Option<MaildirContextSync>,
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
pub maildir_for_sync: Option<MaildirSessionSync>,
|
pub maildir_for_sync: Option<MaildirContextSync>,
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
pub notmuch: Option<NotmuchContextSync>,
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
pub smtp: Option<SmtpClientSync>,
|
pub smtp: Option<SmtpContextSync>,
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
pub sendmail: Option<SendmailContext>,
|
pub sendmail: Option<SendmailContext>,
|
||||||
}
|
}
|
||||||
|
@ -297,7 +335,7 @@ impl BackendBuilder {
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.filter(|_| is_imap_used)
|
.filter(|_| is_imap_used)
|
||||||
.map(|imap_config| {
|
.map(|imap_config| {
|
||||||
ImapSessionBuilder::new(account_config.clone(), imap_config.clone())
|
ImapContextBuilder::new(account_config.clone(), imap_config.clone())
|
||||||
.with_prebuilt_credentials()
|
.with_prebuilt_credentials()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -312,14 +350,14 @@ impl BackendBuilder {
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.filter(|_| is_maildir_used)
|
.filter(|_| is_maildir_used)
|
||||||
.map(|mdir_config| {
|
.map(|mdir_config| {
|
||||||
MaildirSessionBuilder::new(account_config.clone(), mdir_config.clone())
|
MaildirContextBuilder::new(account_config.clone(), mdir_config.clone())
|
||||||
}),
|
}),
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
maildir_for_sync: Some(MaildirConfig {
|
maildir_for_sync: Some(MaildirConfig {
|
||||||
root_dir: account_config.get_sync_dir()?,
|
root_dir: account_config.get_sync_dir()?,
|
||||||
})
|
})
|
||||||
.filter(|_| is_maildir_for_sync_used)
|
.filter(|_| is_maildir_for_sync_used)
|
||||||
.map(|mdir_config| MaildirSessionBuilder::new(account_config.clone(), mdir_config)),
|
.map(|mdir_config| MaildirContextBuilder::new(account_config.clone(), mdir_config)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -332,25 +370,25 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_add_folder(|ctx| ctx.maildir.as_ref().and_then(AddFolderMaildir::new));
|
.with_add_folder(|ctx| ctx.maildir.as_ref().map(AddMaildirFolder::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
backend_builder = backend_builder.with_add_folder(|ctx| {
|
backend_builder = backend_builder.with_add_folder(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddFolderMaildir::new)
|
.map(AddMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_add_folder(|ctx| ctx.imap.as_ref().and_then(AddFolderImap::new));
|
.with_add_folder(|ctx| ctx.imap.as_ref().map(AddImapFolder::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_add_folder(|ctx| ctx.notmuch.as_ref().and_then(AddFolderNotmuch::new));
|
.with_add_folder(|ctx| ctx.notmuch.as_ref().map(AddNotmuchFolder::new_boxed));
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -360,7 +398,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_list_folders(|ctx| {
|
backend_builder = backend_builder.with_list_folders(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(ListFoldersMaildir::new)
|
ctx.maildir.as_ref().map(ListMaildirFolders::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -368,18 +406,18 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_list_folders(|ctx| {
|
backend_builder = backend_builder.with_list_folders(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(ListFoldersMaildir::new)
|
.map(ListMaildirFolders::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_list_folders(|ctx| ctx.imap.as_ref().and_then(ListFoldersImap::new));
|
.with_list_folders(|ctx| ctx.imap.as_ref().map(ListImapFolders::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_list_folders(|ctx| {
|
backend_builder = backend_builder.with_list_folders(|ctx| {
|
||||||
ctx.notmuch.as_ref().and_then(ListFoldersNotmuch::new)
|
ctx.notmuch.as_ref().map(ListNotmuchFolders::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -390,7 +428,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_expunge_folder(|ctx| {
|
backend_builder = backend_builder.with_expunge_folder(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(ExpungeFolderMaildir::new)
|
ctx.maildir.as_ref().map(ExpungeMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -398,19 +436,20 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_expunge_folder(|ctx| {
|
backend_builder = backend_builder.with_expunge_folder(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(ExpungeFolderMaildir::new)
|
.map(ExpungeMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_expunge_folder(|ctx| ctx.imap.as_ref().and_then(ExpungeFolderImap::new));
|
.with_expunge_folder(|ctx| ctx.imap.as_ref().map(ExpungeImapFolder::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_expunge_folder(|ctx| {
|
// TODO
|
||||||
ctx.notmuch.as_ref().and_then(ExpungeFolderNotmuch::new)
|
// backend_builder = backend_builder.with_expunge_folder(|ctx| {
|
||||||
});
|
// ctx.notmuch.as_ref().map(ExpungeNotmuchFolder::new_boxed)
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -421,24 +460,25 @@ impl BackendBuilder {
|
||||||
// #[cfg(feature = "maildir")]
|
// #[cfg(feature = "maildir")]
|
||||||
// Some(BackendKind::Maildir) => {
|
// Some(BackendKind::Maildir) => {
|
||||||
// backend_builder = backend_builder
|
// backend_builder = backend_builder
|
||||||
// .with_purge_folder(|ctx| ctx.maildir.as_ref().and_then(PurgeFolderMaildir::new));
|
// .with_purge_folder(|ctx| ctx.maildir.as_ref().map(PurgeMaildirFolder::new_boxed));
|
||||||
// }
|
// }
|
||||||
// TODO
|
// TODO
|
||||||
// #[cfg(feature = "account-sync")]
|
// #[cfg(feature = "account-sync")]
|
||||||
// Some(BackendKind::MaildirForSync) => {
|
// Some(BackendKind::MaildirForSync) => {
|
||||||
// backend_builder = backend_builder
|
// backend_builder = backend_builder
|
||||||
// .with_purge_folder(|ctx| ctx.maildir_for_sync.as_ref().and_then(PurgeFolderMaildir::new));
|
// .with_purge_folder(|ctx| ctx.maildir_for_sync.as_ref().map(PurgeMaildirFolder::new_boxed));
|
||||||
// }
|
// }
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_purge_folder(|ctx| ctx.imap.as_ref().and_then(PurgeFolderImap::new));
|
.with_purge_folder(|ctx| ctx.imap.as_ref().map(PurgeImapFolder::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_purge_folder(|ctx| {
|
// TODO
|
||||||
ctx.notmuch.as_ref().and_then(PurgeFolderNotmuch::new)
|
// backend_builder = backend_builder.with_purge_folder(|ctx| {
|
||||||
});
|
// ctx.notmuch.as_ref().map(PurgeNotmuchFolder::new_boxed)
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -448,7 +488,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_delete_folder(|ctx| {
|
backend_builder = backend_builder.with_delete_folder(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(DeleteFolderMaildir::new)
|
ctx.maildir.as_ref().map(DeleteMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -456,19 +496,20 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_delete_folder(|ctx| {
|
backend_builder = backend_builder.with_delete_folder(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(DeleteFolderMaildir::new)
|
.map(DeleteMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_delete_folder(|ctx| ctx.imap.as_ref().and_then(DeleteFolderImap::new));
|
.with_delete_folder(|ctx| ctx.imap.as_ref().map(DeleteImapFolder::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_delete_folder(|ctx| {
|
// TODO
|
||||||
ctx.notmuch.as_ref().and_then(DeleteFolderNotmuch::new)
|
// backend_builder = backend_builder.with_delete_folder(|ctx| {
|
||||||
});
|
// ctx.notmuch.as_ref().map(DeleteNotmuchFolder::new_boxed)
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -478,7 +519,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_list_envelopes(|ctx| {
|
backend_builder = backend_builder.with_list_envelopes(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(ListEnvelopesMaildir::new)
|
ctx.maildir.as_ref().map(ListMaildirEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -486,18 +527,18 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_list_envelopes(|ctx| {
|
backend_builder = backend_builder.with_list_envelopes(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(ListEnvelopesMaildir::new)
|
.map(ListMaildirEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_list_envelopes(|ctx| ctx.imap.as_ref().and_then(ListEnvelopesImap::new));
|
.with_list_envelopes(|ctx| ctx.imap.as_ref().map(ListImapEnvelopes::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_list_envelopes(|ctx| {
|
backend_builder = backend_builder.with_list_envelopes(|ctx| {
|
||||||
ctx.notmuch.as_ref().and_then(ListEnvelopesNotmuch::new)
|
ctx.notmuch.as_ref().map(ListNotmuchEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -508,7 +549,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_watch_envelopes(|ctx| {
|
backend_builder = backend_builder.with_watch_envelopes(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(WatchMaildirEnvelopes::new)
|
ctx.maildir.as_ref().map(WatchMaildirEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -516,20 +557,21 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_watch_envelopes(|ctx| {
|
backend_builder = backend_builder.with_watch_envelopes(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(WatchMaildirEnvelopes::new)
|
.map(WatchMaildirEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder.with_watch_envelopes(|ctx| {
|
backend_builder = backend_builder.with_watch_envelopes(|ctx| {
|
||||||
ctx.imap.as_ref().and_then(WatchImapEnvelopes::new)
|
ctx.imap.as_ref().map(WatchImapEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_watch_envelopes(|ctx| {
|
// TODO
|
||||||
ctx.notmuch.as_ref().and_then(WatchNotmuchEnvelopes::new)
|
// backend_builder = backend_builder.with_watch_envelopes(|ctx| {
|
||||||
});
|
// ctx.notmuch.as_ref().map(WatchNotmuchEnvelopes::new_boxed)
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -539,7 +581,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_get_envelope(|ctx| {
|
backend_builder = backend_builder.with_get_envelope(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(GetEnvelopeMaildir::new)
|
ctx.maildir.as_ref().map(GetMaildirEnvelope::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -547,18 +589,18 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_get_envelope(|ctx| {
|
backend_builder = backend_builder.with_get_envelope(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(GetEnvelopeMaildir::new)
|
.map(GetMaildirEnvelope::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_get_envelope(|ctx| ctx.imap.as_ref().and_then(GetEnvelopeImap::new));
|
.with_get_envelope(|ctx| ctx.imap.as_ref().map(GetImapEnvelope::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_get_envelope(|ctx| {
|
backend_builder = backend_builder.with_get_envelope(|ctx| {
|
||||||
ctx.notmuch.as_ref().and_then(GetEnvelopeNotmuch::new)
|
ctx.notmuch.as_ref().map(GetNotmuchEnvelope::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -569,23 +611,25 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_add_flags(|ctx| ctx.maildir.as_ref().and_then(AddFlagsMaildir::new));
|
.with_add_flags(|ctx| ctx.maildir.as_ref().map(AddMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
backend_builder = backend_builder.with_add_flags(|ctx| {
|
backend_builder = backend_builder.with_add_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(AddFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(AddMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_add_flags(|ctx| ctx.imap.as_ref().and_then(AddFlagsImap::new));
|
.with_add_flags(|ctx| ctx.imap.as_ref().map(AddImapFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_add_flags(|ctx| ctx.notmuch.as_ref().and_then(AddFlagsNotmuch::new));
|
.with_add_flags(|ctx| ctx.notmuch.as_ref().map(AddNotmuchFlags::new_boxed));
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -595,23 +639,25 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_set_flags(|ctx| ctx.maildir.as_ref().and_then(SetFlagsMaildir::new));
|
.with_set_flags(|ctx| ctx.maildir.as_ref().map(SetMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
backend_builder = backend_builder.with_set_flags(|ctx| {
|
backend_builder = backend_builder.with_set_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(SetFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(SetMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_set_flags(|ctx| ctx.imap.as_ref().and_then(SetFlagsImap::new));
|
.with_set_flags(|ctx| ctx.imap.as_ref().map(SetImapFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_set_flags(|ctx| ctx.notmuch.as_ref().and_then(SetFlagsNotmuch::new));
|
.with_set_flags(|ctx| ctx.notmuch.as_ref().map(SetNotmuchFlags::new_boxed));
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -621,7 +667,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_remove_flags(|ctx| {
|
backend_builder = backend_builder.with_remove_flags(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(RemoveFlagsMaildir::new)
|
ctx.maildir.as_ref().map(RemoveMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -629,18 +675,18 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_remove_flags(|ctx| {
|
backend_builder = backend_builder.with_remove_flags(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(RemoveFlagsMaildir::new)
|
.map(RemoveMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_remove_flags(|ctx| ctx.imap.as_ref().and_then(RemoveFlagsImap::new));
|
.with_remove_flags(|ctx| ctx.imap.as_ref().map(RemoveImapFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_remove_flags(|ctx| {
|
backend_builder = backend_builder.with_remove_flags(|ctx| {
|
||||||
ctx.notmuch.as_ref().and_then(RemoveFlagsNotmuch::new)
|
ctx.notmuch.as_ref().map(RemoveNotmuchFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -651,27 +697,26 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new))
|
.with_add_message(|ctx| ctx.imap.as_ref().map(AddImapMessage::new_boxed))
|
||||||
.with_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
.with_add_message(|ctx| ctx.imap.as_ref().map(AddImapMessage::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_add_message(|ctx| ctx.maildir.as_ref().and_then(AddMaildirMessage::new));
|
.with_add_message(|ctx| ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
backend_builder = backend_builder.with_add_message(|ctx| {
|
backend_builder = backend_builder.with_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_add_raw_message(|ctx| {
|
backend_builder = backend_builder
|
||||||
ctx.notmuch.as_ref().and_then(AddRawMessageNotmuch::new)
|
.with_add_message(|ctx| ctx.notmuch.as_ref().map(AddNotmuchMessage::new_boxed));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -681,7 +726,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_peek_messages(|ctx| {
|
backend_builder = backend_builder.with_peek_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(PeekMessagesMaildir::new)
|
ctx.maildir.as_ref().map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -689,18 +734,18 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_peek_messages(|ctx| {
|
backend_builder = backend_builder.with_peek_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(PeekMessagesMaildir::new)
|
.map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_peek_messages(|ctx| ctx.imap.as_ref().and_then(PeekMessagesImap::new));
|
.with_peek_messages(|ctx| ctx.imap.as_ref().map(PeekImapMessages::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_peek_messages(|ctx| {
|
backend_builder = backend_builder.with_peek_messages(|ctx| {
|
||||||
ctx.notmuch.as_ref().and_then(PeekMessagesNotmuch::new)
|
ctx.notmuch.as_ref().map(PeekNotmuchMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -711,13 +756,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_get_messages(|ctx| ctx.imap.as_ref().and_then(GetMessagesImap::new));
|
.with_get_messages(|ctx| ctx.imap.as_ref().map(GetImapMessages::new_boxed));
|
||||||
}
|
|
||||||
#[cfg(feature = "notmuch")]
|
|
||||||
Some(BackendKind::Notmuch) => {
|
|
||||||
backend_builder = backend_builder.with_get_messages(|ctx| {
|
|
||||||
ctx.notmuch.as_ref().and_then(GetMessagesNotmuch::new)
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
@ -727,7 +766,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_copy_messages(|ctx| {
|
backend_builder = backend_builder.with_copy_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(CopyMessagesMaildir::new)
|
ctx.maildir.as_ref().map(CopyMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -735,18 +774,18 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_copy_messages(|ctx| {
|
backend_builder = backend_builder.with_copy_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(CopyMessagesMaildir::new)
|
.map(CopyMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_copy_messages(|ctx| ctx.imap.as_ref().and_then(CopyMessagesImap::new));
|
.with_copy_messages(|ctx| ctx.imap.as_ref().map(CopyImapMessages::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_copy_messages(|ctx| {
|
backend_builder = backend_builder.with_copy_messages(|ctx| {
|
||||||
ctx.notmuch.as_ref().and_then(CopyMessagesNotmuch::new)
|
ctx.notmuch.as_ref().map(CopyNotmuchMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -757,7 +796,7 @@ impl BackendBuilder {
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
backend_builder = backend_builder.with_move_messages(|ctx| {
|
backend_builder = backend_builder.with_move_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(MoveMessagesMaildir::new)
|
ctx.maildir.as_ref().map(MoveMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -765,18 +804,18 @@ impl BackendBuilder {
|
||||||
backend_builder = backend_builder.with_move_messages(|ctx| {
|
backend_builder = backend_builder.with_move_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(MoveMessagesMaildir::new)
|
.map(MoveMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
backend_builder = backend_builder
|
backend_builder = backend_builder
|
||||||
.with_move_messages(|ctx| ctx.imap.as_ref().and_then(MoveMessagesImap::new));
|
.with_move_messages(|ctx| ctx.imap.as_ref().map(MoveImapMessages::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
Some(BackendKind::Notmuch) => {
|
Some(BackendKind::Notmuch) => {
|
||||||
backend_builder = backend_builder.with_move_messages(|ctx| {
|
backend_builder = backend_builder.with_move_messages(|ctx| {
|
||||||
ctx.notmuch.as_ref().and_then(MoveMessagesNotmuch::new)
|
ctx.notmuch.as_ref().map(MoveNotmuchMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -870,7 +909,7 @@ impl Backend {
|
||||||
id_mapper = IdMapper::new(
|
id_mapper = IdMapper::new(
|
||||||
&self.backend.account_config,
|
&self.backend.account_config,
|
||||||
folder,
|
folder,
|
||||||
mdir_config.root_dir.clone(),
|
notmuch_config.get_maildir_path()?,
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::envelope::list::imap::ListEnvelopesImap;
|
use email::envelope::list::imap::ListImapEnvelopes;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::envelope::list::maildir::ListEnvelopesMaildir;
|
use email::envelope::list::maildir::ListMaildirEnvelopes;
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
use email::envelope::list::notmuch::ListEnvelopesNotmuch;
|
use email::envelope::list::notmuch::ListNotmuchEnvelopes;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -92,13 +92,13 @@ impl ListEnvelopesCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder.set_list_envelopes(|ctx| {
|
builder.set_list_envelopes(|ctx| {
|
||||||
ctx.imap.as_ref().and_then(ListEnvelopesImap::new)
|
ctx.imap.as_ref().map(ListImapEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_list_envelopes(|ctx| {
|
builder.set_list_envelopes(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(ListEnvelopesMaildir::new)
|
ctx.maildir.as_ref().map(ListMaildirEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -106,7 +106,13 @@ impl ListEnvelopesCommand {
|
||||||
builder.set_list_envelopes(|ctx| {
|
builder.set_list_envelopes(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(ListEnvelopesMaildir::new)
|
.map(ListMaildirEnvelopes::new_boxed)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
builder.set_list_envelopes(|ctx| {
|
||||||
|
ctx.notmuch.as_ref().map(ListNotmuchEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -4,8 +4,8 @@ use clap::Parser;
|
||||||
use email::envelope::watch::imap::WatchImapEnvelopes;
|
use email::envelope::watch::imap::WatchImapEnvelopes;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::envelope::watch::maildir::WatchMaildirEnvelopes;
|
use email::envelope::watch::maildir::WatchMaildirEnvelopes;
|
||||||
#[cfg(feature = "notmuch")]
|
// #[cfg(feature = "notmuch")]
|
||||||
use email::envelope::watch::notmuch::WatchNotmuchEnvelopes;
|
// use email::envelope::watch::notmuch::WatchNotmuchEnvelopes;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -56,13 +56,13 @@ impl WatchEnvelopesCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder.set_watch_envelopes(|ctx| {
|
builder.set_watch_envelopes(|ctx| {
|
||||||
ctx.imap.as_ref().and_then(WatchImapEnvelopes::new)
|
ctx.imap.as_ref().map(WatchImapEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_watch_envelopes(|ctx| {
|
builder.set_watch_envelopes(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(WatchMaildirEnvelopes::new)
|
ctx.maildir.as_ref().map(WatchMaildirEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -70,9 +70,16 @@ impl WatchEnvelopesCommand {
|
||||||
builder.set_watch_envelopes(|ctx| {
|
builder.set_watch_envelopes(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(WatchMaildirEnvelopes::new)
|
.map(WatchMaildirEnvelopes::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
// TODO
|
||||||
|
// builder.set_watch_envelopes(|ctx| {
|
||||||
|
// ctx.notmuch.as_ref().map(WatchNotmuchEnvelopes::new_boxed)
|
||||||
|
// });
|
||||||
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::flag::add::imap::AddFlagsImap;
|
use email::flag::add::imap::AddImapFlags;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::flag::add::maildir::AddFlagsMaildir;
|
use email::flag::add::maildir::AddMaildirFlags;
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
use email::flag::add::notmuch::AddFlagsNotmuch;
|
use email::flag::add::notmuch::AddNotmuchFlags;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -60,19 +60,26 @@ impl FlagAddCommand {
|
||||||
|builder| match add_flags_kind {
|
|builder| match add_flags_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder.set_add_flags(|ctx| ctx.imap.as_ref().and_then(AddFlagsImap::new));
|
builder.set_add_flags(|ctx| ctx.imap.as_ref().map(AddImapFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder
|
builder
|
||||||
.set_add_flags(|ctx| ctx.maildir.as_ref().and_then(AddFlagsMaildir::new));
|
.set_add_flags(|ctx| ctx.maildir.as_ref().map(AddMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
builder.set_add_flags(|ctx| {
|
builder.set_add_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(AddFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(AddMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
builder
|
||||||
|
.set_add_flags(|ctx| ctx.notmuch.as_ref().map(AddNotmuchFlags::new_boxed));
|
||||||
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::flag::remove::imap::RemoveFlagsImap;
|
use email::flag::remove::imap::RemoveImapFlags;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::flag::remove::maildir::RemoveFlagsMaildir;
|
use email::flag::remove::maildir::RemoveMaildirFlags;
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
use email::flag::remove::notmuch::RemoveFlagsNotmuch;
|
use email::flag::remove::notmuch::RemoveNotmuchFlags;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -61,12 +61,12 @@ impl FlagRemoveCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder
|
||||||
.set_remove_flags(|ctx| ctx.imap.as_ref().and_then(RemoveFlagsImap::new));
|
.set_remove_flags(|ctx| ctx.imap.as_ref().map(RemoveImapFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_remove_flags(|ctx| {
|
builder.set_remove_flags(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(RemoveFlagsMaildir::new)
|
ctx.maildir.as_ref().map(RemoveMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -74,7 +74,13 @@ impl FlagRemoveCommand {
|
||||||
builder.set_remove_flags(|ctx| {
|
builder.set_remove_flags(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(RemoveFlagsMaildir::new)
|
.map(RemoveMaildirFlags::new_boxed)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
builder.set_remove_flags(|ctx| {
|
||||||
|
ctx.notmuch.as_ref().map(RemoveNotmuchFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::flag::set::imap::SetFlagsImap;
|
use email::flag::set::imap::SetImapFlags;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::flag::set::maildir::SetFlagsMaildir;
|
use email::flag::set::maildir::SetMaildirFlags;
|
||||||
#[cfg(feature = "notmuch")]
|
#[cfg(feature = "notmuch")]
|
||||||
use email::flag::set::notmuch::SetFlagsNotmuch;
|
use email::flag::set::notmuch::SetNotmuchFlags;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -60,19 +60,26 @@ impl FlagSetCommand {
|
||||||
|builder| match set_flags_kind {
|
|builder| match set_flags_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder.set_set_flags(|ctx| ctx.imap.as_ref().and_then(SetFlagsImap::new));
|
builder.set_set_flags(|ctx| ctx.imap.as_ref().map(SetImapFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder
|
builder
|
||||||
.set_set_flags(|ctx| ctx.maildir.as_ref().and_then(SetFlagsMaildir::new));
|
.set_set_flags(|ctx| ctx.maildir.as_ref().map(SetMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
builder.set_set_flags(|ctx| {
|
builder.set_set_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(SetFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(SetMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
builder
|
||||||
|
.set_set_flags(|ctx| ctx.notmuch.as_ref().map(SetNotmuchFlags::new_boxed));
|
||||||
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::message::get::imap::GetMessagesImap;
|
use email::message::get::imap::GetImapMessages;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::{flag::add::maildir::AddFlagsMaildir, message::peek::maildir::PeekMessagesMaildir};
|
use email::{flag::add::maildir::AddMaildirFlags, message::peek::maildir::PeekMaildirMessages};
|
||||||
use log::info;
|
use log::info;
|
||||||
use std::{fs, path::PathBuf};
|
use std::{fs, path::PathBuf};
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
@ -62,25 +62,27 @@ impl AttachmentDownloadCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder
|
||||||
.set_get_messages(|ctx| ctx.imap.as_ref().and_then(GetMessagesImap::new));
|
.set_get_messages(|ctx| ctx.imap.as_ref().map(GetImapMessages::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_peek_messages(|ctx| {
|
builder.set_peek_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(PeekMessagesMaildir::new)
|
ctx.maildir.as_ref().map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder
|
builder
|
||||||
.set_add_flags(|ctx| ctx.maildir.as_ref().and_then(AddFlagsMaildir::new));
|
.set_add_flags(|ctx| ctx.maildir.as_ref().map(AddMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
builder.set_peek_messages(|ctx| {
|
builder.set_peek_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(PeekMessagesMaildir::new)
|
.map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder.set_add_flags(|ctx| {
|
builder.set_add_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(AddFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(AddMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::message::copy::imap::CopyMessagesImap;
|
use email::message::copy::imap::CopyImapMessages;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::message::copy::maildir::CopyMessagesMaildir;
|
use email::message::copy::maildir::CopyMaildirMessages;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -61,13 +61,14 @@ impl MessageCopyCommand {
|
||||||
|#[allow(unused)] builder| match copy_messages_kind {
|
|#[allow(unused)] builder| match copy_messages_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_copy_messages(|ctx| {
|
||||||
.set_copy_messages(|ctx| ctx.imap.as_ref().and_then(CopyMessagesImap::new));
|
ctx.imap.as_ref().map(CopyImapMessages::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_copy_messages(|ctx| {
|
builder.set_copy_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(CopyMessagesMaildir::new)
|
ctx.maildir.as_ref().map(CopyMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -75,7 +76,7 @@ impl MessageCopyCommand {
|
||||||
builder.set_copy_messages(|ctx| {
|
builder.set_copy_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(CopyMessagesMaildir::new)
|
.map(CopyMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::{flag::add::imap::AddFlagsImap, message::move_::imap::MoveMessagesImap};
|
use email::{flag::add::imap::AddImapFlags, message::move_::imap::MoveImapMessages};
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::{flag::add::maildir::AddFlagsMaildir, message::move_::maildir::MoveMessagesMaildir};
|
use email::{flag::add::maildir::AddMaildirFlags, message::move_::maildir::MoveMaildirMessages};
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -62,27 +62,30 @@ impl MessageDeleteCommand {
|
||||||
|#[allow(unused)] builder| match delete_messages_kind {
|
|#[allow(unused)] builder| match delete_messages_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_move_messages(|ctx| {
|
||||||
.set_move_messages(|ctx| ctx.imap.as_ref().and_then(MoveMessagesImap::new));
|
ctx.imap.as_ref().map(MoveImapMessages::new_boxed)
|
||||||
builder.set_add_flags(|ctx| ctx.imap.as_ref().and_then(AddFlagsImap::new));
|
});
|
||||||
|
builder.set_add_flags(|ctx| ctx.imap.as_ref().map(AddImapFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_move_messages(|ctx| {
|
builder.set_move_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(MoveMessagesMaildir::new)
|
ctx.maildir.as_ref().map(MoveMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder
|
builder
|
||||||
.set_add_flags(|ctx| ctx.maildir.as_ref().and_then(AddFlagsMaildir::new));
|
.set_add_flags(|ctx| ctx.maildir.as_ref().map(AddMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
builder.set_move_messages(|ctx| {
|
builder.set_move_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(MoveMessagesMaildir::new)
|
.map(MoveMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder.set_add_flags(|ctx| {
|
builder.set_add_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(AddFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(AddMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -5,9 +5,9 @@ use email::message::add::imap::AddImapMessage;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::message::add::maildir::AddMaildirMessage;
|
use email::message::add::maildir::AddMaildirMessage;
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
use email::message::send::sendmail::SendMessageSendmail;
|
use email::message::send::sendmail::SendSendmailMessage;
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
use email::message::send::smtp::SendMessageSmtp;
|
use email::message::send::smtp::SendSmtpMessage;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -75,13 +75,14 @@ impl MessageForwardCommand {
|
||||||
match add_message_kind {
|
match add_message_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_add_message(|ctx| {
|
||||||
.set_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
ctx.imap.as_ref().map(AddImapMessage::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(AddMaildirMessage::new)
|
ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -89,7 +90,7 @@ impl MessageForwardCommand {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -99,13 +100,13 @@ impl MessageForwardCommand {
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
Some(BackendKind::Smtp) => {
|
Some(BackendKind::Smtp) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.smtp.as_ref().and_then(SendMessageSmtp::new)
|
ctx.smtp.as_ref().map(SendSmtpMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
Some(BackendKind::Sendmail) => {
|
Some(BackendKind::Sendmail) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.sendmail.as_ref().and_then(SendMessageSendmail::new)
|
ctx.sendmail.as_ref().map(SendSendmailMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -5,9 +5,9 @@ use email::message::add::imap::AddImapMessage;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::message::add::maildir::AddMaildirMessage;
|
use email::message::add::maildir::AddMaildirMessage;
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
use email::message::send::sendmail::SendMessageSendmail;
|
use email::message::send::sendmail::SendSendmailMessage;
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
use email::message::send::smtp::SendMessageSmtp;
|
use email::message::send::smtp::SendSmtpMessage;
|
||||||
use log::{debug, info};
|
use log::{debug, info};
|
||||||
use mail_builder::MessageBuilder;
|
use mail_builder::MessageBuilder;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
@ -72,13 +72,14 @@ impl MessageMailtoCommand {
|
||||||
match add_message_kind {
|
match add_message_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_add_message(|ctx| {
|
||||||
.set_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
ctx.imap.as_ref().map(AddImapMessage::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(AddMaildirMessage::new)
|
ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -86,7 +87,7 @@ impl MessageMailtoCommand {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -96,13 +97,13 @@ impl MessageMailtoCommand {
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
Some(BackendKind::Smtp) => {
|
Some(BackendKind::Smtp) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.smtp.as_ref().and_then(SendMessageSmtp::new)
|
ctx.smtp.as_ref().map(SendSmtpMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
Some(BackendKind::Sendmail) => {
|
Some(BackendKind::Sendmail) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.sendmail.as_ref().and_then(SendMessageSendmail::new)
|
ctx.sendmail.as_ref().map(SendSendmailMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::message::move_::imap::MoveMessagesImap;
|
use email::message::move_::imap::MoveImapMessages;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::message::move_::maildir::MoveMessagesMaildir;
|
use email::message::move_::maildir::MoveMaildirMessages;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -61,13 +61,14 @@ impl MessageMoveCommand {
|
||||||
|#[allow(unused)] builder| match move_messages_kind {
|
|#[allow(unused)] builder| match move_messages_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_move_messages(|ctx| {
|
||||||
.set_move_messages(|ctx| ctx.imap.as_ref().and_then(MoveMessagesImap::new));
|
ctx.imap.as_ref().map(MoveImapMessages::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_move_messages(|ctx| {
|
builder.set_move_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(MoveMessagesMaildir::new)
|
ctx.maildir.as_ref().map(MoveMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -75,7 +76,7 @@ impl MessageMoveCommand {
|
||||||
builder.set_move_messages(|ctx| {
|
builder.set_move_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(MoveMessagesMaildir::new)
|
.map(MoveMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::message::{get::imap::GetMessagesImap, peek::imap::PeekMessagesImap};
|
use email::message::{get::imap::GetImapMessages, peek::imap::PeekImapMessages};
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::{flag::add::maildir::AddFlagsMaildir, message::peek::maildir::PeekMessagesMaildir};
|
use email::{flag::add::maildir::AddMaildirFlags, message::peek::maildir::PeekMaildirMessages};
|
||||||
use log::info;
|
use log::info;
|
||||||
use mml::message::FilterParts;
|
use mml::message::FilterParts;
|
||||||
|
|
||||||
|
@ -106,28 +106,31 @@ impl MessageReadCommand {
|
||||||
|#[allow(unused)] builder| match get_messages_kind {
|
|#[allow(unused)] builder| match get_messages_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
|
builder.set_peek_messages(|ctx| {
|
||||||
|
ctx.imap.as_ref().map(PeekImapMessages::new_boxed)
|
||||||
|
});
|
||||||
builder
|
builder
|
||||||
.set_peek_messages(|ctx| ctx.imap.as_ref().and_then(PeekMessagesImap::new));
|
.set_get_messages(|ctx| ctx.imap.as_ref().map(GetImapMessages::new_boxed));
|
||||||
builder
|
|
||||||
.set_get_messages(|ctx| ctx.imap.as_ref().and_then(GetMessagesImap::new));
|
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_peek_messages(|ctx| {
|
builder.set_peek_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(PeekMessagesMaildir::new)
|
ctx.maildir.as_ref().map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder
|
builder
|
||||||
.set_add_flags(|ctx| ctx.maildir.as_ref().and_then(AddFlagsMaildir::new));
|
.set_add_flags(|ctx| ctx.maildir.as_ref().map(AddMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
builder.set_peek_messages(|ctx| {
|
builder.set_peek_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(PeekMessagesMaildir::new)
|
.map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder.set_add_flags(|ctx| {
|
builder.set_add_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(AddFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(AddMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -5,9 +5,9 @@ use email::message::add::imap::AddImapMessage;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::message::add::maildir::AddMaildirMessage;
|
use email::message::add::maildir::AddMaildirMessage;
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
use email::message::send::sendmail::SendMessageSendmail;
|
use email::message::send::sendmail::SendSendmailMessage;
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
use email::message::send::smtp::SendMessageSmtp;
|
use email::message::send::smtp::SendSmtpMessage;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -77,13 +77,14 @@ impl MessageReplyCommand {
|
||||||
match add_message_kind {
|
match add_message_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_add_message(|ctx| {
|
||||||
.set_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
ctx.imap.as_ref().map(AddImapMessage::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(AddMaildirMessage::new)
|
ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -91,7 +92,7 @@ impl MessageReplyCommand {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -101,13 +102,13 @@ impl MessageReplyCommand {
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
Some(BackendKind::Smtp) => {
|
Some(BackendKind::Smtp) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.smtp.as_ref().and_then(SendMessageSmtp::new)
|
ctx.smtp.as_ref().map(SendSmtpMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
Some(BackendKind::Sendmail) => {
|
Some(BackendKind::Sendmail) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.sendmail.as_ref().and_then(SendMessageSendmail::new)
|
ctx.sendmail.as_ref().map(SendSendmailMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -59,12 +59,12 @@ impl MessageSaveCommand {
|
||||||
|#[allow(unused)] builder| match add_message_kind {
|
|#[allow(unused)] builder| match add_message_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder.set_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
builder.set_add_message(|ctx| ctx.imap.as_ref().map(AddImapMessage::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(AddMaildirMessage::new)
|
ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -72,7 +72,7 @@ impl MessageSaveCommand {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -5,9 +5,9 @@ use email::message::add::imap::AddImapMessage;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::message::add::maildir::AddMaildirMessage;
|
use email::message::add::maildir::AddMaildirMessage;
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
use email::message::send::sendmail::SendMessageSendmail;
|
use email::message::send::sendmail::SendSendmailMessage;
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
use email::message::send::smtp::SendMessageSmtp;
|
use email::message::send::smtp::SendSmtpMessage;
|
||||||
use log::info;
|
use log::info;
|
||||||
use std::io::{self, BufRead, IsTerminal};
|
use std::io::{self, BufRead, IsTerminal};
|
||||||
|
|
||||||
|
@ -66,13 +66,14 @@ impl MessageSendCommand {
|
||||||
match add_message_kind {
|
match add_message_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_add_message(|ctx| {
|
||||||
.set_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
ctx.imap.as_ref().map(AddImapMessage::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(AddMaildirMessage::new)
|
ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -80,7 +81,7 @@ impl MessageSendCommand {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -89,13 +90,13 @@ impl MessageSendCommand {
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
Some(BackendKind::Smtp) => {
|
Some(BackendKind::Smtp) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.smtp.as_ref().and_then(SendMessageSmtp::new)
|
ctx.smtp.as_ref().map(SendSmtpMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
Some(BackendKind::Sendmail) => {
|
Some(BackendKind::Sendmail) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.sendmail.as_ref().and_then(SendMessageSendmail::new)
|
ctx.sendmail.as_ref().map(SendSendmailMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -5,9 +5,9 @@ use email::message::add::imap::AddImapMessage;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::message::add::maildir::AddMaildirMessage;
|
use email::message::add::maildir::AddMaildirMessage;
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
use email::message::send::sendmail::SendMessageSendmail;
|
use email::message::send::sendmail::SendSendmailMessage;
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
use email::message::send::smtp::SendMessageSmtp;
|
use email::message::send::smtp::SendSmtpMessage;
|
||||||
use email::message::Message;
|
use email::message::Message;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
|
@ -66,13 +66,14 @@ impl MessageWriteCommand {
|
||||||
match add_message_kind {
|
match add_message_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_add_message(|ctx| {
|
||||||
.set_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
ctx.imap.as_ref().map(AddImapMessage::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(AddMaildirMessage::new)
|
ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -80,7 +81,7 @@ impl MessageWriteCommand {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -90,13 +91,13 @@ impl MessageWriteCommand {
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
Some(BackendKind::Smtp) => {
|
Some(BackendKind::Smtp) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.smtp.as_ref().and_then(SendMessageSmtp::new)
|
ctx.smtp.as_ref().map(SendSmtpMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
Some(BackendKind::Sendmail) => {
|
Some(BackendKind::Sendmail) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.sendmail.as_ref().and_then(SendMessageSendmail::new)
|
ctx.sendmail.as_ref().map(SendSendmailMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Result};
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::message::get::imap::GetMessagesImap;
|
use email::message::get::imap::GetImapMessages;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::{flag::add::maildir::AddFlagsMaildir, message::peek::maildir::PeekMessagesMaildir};
|
use email::{flag::add::maildir::AddMaildirFlags, message::peek::maildir::PeekMaildirMessages};
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -68,25 +68,27 @@ impl TemplateForwardCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder
|
||||||
.set_get_messages(|ctx| ctx.imap.as_ref().and_then(GetMessagesImap::new));
|
.set_get_messages(|ctx| ctx.imap.as_ref().map(GetImapMessages::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_peek_messages(|ctx| {
|
builder.set_peek_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(PeekMessagesMaildir::new)
|
ctx.maildir.as_ref().map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder
|
builder
|
||||||
.set_add_flags(|ctx| ctx.maildir.as_ref().and_then(AddFlagsMaildir::new));
|
.set_add_flags(|ctx| ctx.maildir.as_ref().map(AddMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
builder.set_peek_messages(|ctx| {
|
builder.set_peek_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(PeekMessagesMaildir::new)
|
.map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder.set_add_flags(|ctx| {
|
builder.set_add_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(AddFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(AddMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Result};
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::message::get::imap::GetMessagesImap;
|
use email::message::get::imap::GetImapMessages;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::{flag::add::maildir::AddFlagsMaildir, message::peek::maildir::PeekMessagesMaildir};
|
use email::{flag::add::maildir::AddMaildirFlags, message::peek::maildir::PeekMaildirMessages};
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -73,25 +73,27 @@ impl TemplateReplyCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder
|
||||||
.set_get_messages(|ctx| ctx.imap.as_ref().and_then(GetMessagesImap::new));
|
.set_get_messages(|ctx| ctx.imap.as_ref().map(GetImapMessages::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_peek_messages(|ctx| {
|
builder.set_peek_messages(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(PeekMessagesMaildir::new)
|
ctx.maildir.as_ref().map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder
|
builder
|
||||||
.set_add_flags(|ctx| ctx.maildir.as_ref().and_then(AddFlagsMaildir::new));
|
.set_add_flags(|ctx| ctx.maildir.as_ref().map(AddMaildirFlags::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
builder.set_peek_messages(|ctx| {
|
builder.set_peek_messages(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(PeekMessagesMaildir::new)
|
.map(PeekMaildirMessages::new_boxed)
|
||||||
});
|
});
|
||||||
builder.set_add_flags(|ctx| {
|
builder.set_add_flags(|ctx| {
|
||||||
ctx.maildir_for_sync.as_ref().and_then(AddFlagsMaildir::new)
|
ctx.maildir_for_sync
|
||||||
|
.as_ref()
|
||||||
|
.map(AddMaildirFlags::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -63,12 +63,12 @@ impl TemplateSaveCommand {
|
||||||
|#[allow(unused)] builder| match add_message_kind {
|
|#[allow(unused)] builder| match add_message_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder.set_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
builder.set_add_message(|ctx| ctx.imap.as_ref().map(AddImapMessage::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(AddMaildirMessage::new)
|
ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -76,7 +76,7 @@ impl TemplateSaveCommand {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -5,9 +5,9 @@ use email::message::add::imap::AddImapMessage;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::message::add::maildir::AddMaildirMessage;
|
use email::message::add::maildir::AddMaildirMessage;
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
use email::message::send::sendmail::SendMessageSendmail;
|
use email::message::send::sendmail::SendSendmailMessage;
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
use email::message::send::smtp::SendMessageSmtp;
|
use email::message::send::smtp::SendSmtpMessage;
|
||||||
use log::info;
|
use log::info;
|
||||||
use mml::MmlCompilerBuilder;
|
use mml::MmlCompilerBuilder;
|
||||||
use std::io::{self, BufRead, IsTerminal};
|
use std::io::{self, BufRead, IsTerminal};
|
||||||
|
@ -69,13 +69,14 @@ impl TemplateSendCommand {
|
||||||
match add_message_kind {
|
match add_message_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_add_message(|ctx| {
|
||||||
.set_add_message(|ctx| ctx.imap.as_ref().and_then(AddImapMessage::new));
|
ctx.imap.as_ref().map(AddImapMessage::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(AddMaildirMessage::new)
|
ctx.maildir.as_ref().map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -83,7 +84,7 @@ impl TemplateSendCommand {
|
||||||
builder.set_add_message(|ctx| {
|
builder.set_add_message(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddMaildirMessage::new)
|
.map(AddMaildirMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
@ -92,13 +93,13 @@ impl TemplateSendCommand {
|
||||||
#[cfg(feature = "smtp")]
|
#[cfg(feature = "smtp")]
|
||||||
Some(BackendKind::Smtp) => {
|
Some(BackendKind::Smtp) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.smtp.as_ref().and_then(SendMessageSmtp::new)
|
ctx.smtp.as_ref().map(SendSmtpMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "sendmail")]
|
#[cfg(feature = "sendmail")]
|
||||||
Some(BackendKind::Sendmail) => {
|
Some(BackendKind::Sendmail) => {
|
||||||
builder.set_send_message(|ctx| {
|
builder.set_send_message(|ctx| {
|
||||||
ctx.sendmail.as_ref().and_then(SendMessageSendmail::new)
|
ctx.sendmail.as_ref().map(SendSendmailMessage::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::folder::add::imap::AddFolderImap;
|
use email::folder::add::imap::AddImapFolder;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::folder::add::maildir::AddFolderMaildir;
|
use email::folder::add::maildir::AddMaildirFolder;
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
use email::folder::add::notmuch::AddNotmuchFolder;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
||||||
|
@ -52,19 +54,26 @@ impl AddFolderCommand {
|
||||||
|builder| match add_folder_kind {
|
|builder| match add_folder_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder.set_add_folder(|ctx| ctx.imap.as_ref().and_then(AddFolderImap::new));
|
builder.set_add_folder(|ctx| ctx.imap.as_ref().map(AddImapFolder::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder
|
builder.set_add_folder(|ctx| {
|
||||||
.set_add_folder(|ctx| ctx.maildir.as_ref().and_then(AddFolderMaildir::new));
|
ctx.maildir.as_ref().map(AddMaildirFolder::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
Some(BackendKind::MaildirForSync) => {
|
Some(BackendKind::MaildirForSync) => {
|
||||||
builder.set_add_folder(|ctx| {
|
builder.set_add_folder(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(AddFolderMaildir::new)
|
.map(AddMaildirFolder::new_boxed)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
builder.set_add_folder(|ctx| {
|
||||||
|
ctx.notmuch.as_ref().map(AddNotmuchFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
|
@ -2,9 +2,11 @@ use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use dialoguer::Confirm;
|
use dialoguer::Confirm;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::folder::delete::imap::DeleteFolderImap;
|
use email::folder::delete::imap::DeleteImapFolder;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::folder::delete::maildir::DeleteFolderMaildir;
|
use email::folder::delete::maildir::DeleteMaildirFolder;
|
||||||
|
// #[cfg(feature = "notmuch")]
|
||||||
|
// use email::folder::delete::notmuch::DeleteNotmuchFolder;
|
||||||
use log::info;
|
use log::info;
|
||||||
use std::process;
|
use std::process;
|
||||||
|
|
||||||
|
@ -65,13 +67,14 @@ impl FolderDeleteCommand {
|
||||||
|builder| match delete_folder_kind {
|
|builder| match delete_folder_kind {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder.set_delete_folder(|ctx| {
|
||||||
.set_delete_folder(|ctx| ctx.imap.as_ref().and_then(DeleteFolderImap::new));
|
ctx.imap.as_ref().map(DeleteImapFolder::new_boxed)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_delete_folder(|ctx| {
|
builder.set_delete_folder(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(DeleteFolderMaildir::new)
|
ctx.maildir.as_ref().map(DeleteMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -79,9 +82,16 @@ impl FolderDeleteCommand {
|
||||||
builder.set_delete_folder(|ctx| {
|
builder.set_delete_folder(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(DeleteFolderMaildir::new)
|
.map(DeleteMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
// TODO
|
||||||
|
// builder.set_delete_folder(|ctx| {
|
||||||
|
// ctx.notmuch.as_ref().map(DeleteNotmuchFolder::new_boxed)
|
||||||
|
// });
|
||||||
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::folder::expunge::imap::ExpungeFolderImap;
|
use email::folder::expunge::imap::ExpungeImapFolder;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::folder::expunge::maildir::ExpungeFolderMaildir;
|
use email::folder::expunge::maildir::ExpungeMaildirFolder;
|
||||||
|
// #[cfg(feature = "notmuch")]
|
||||||
|
// use email::folder::expunge::notmuch::ExpungeNotmuchFolder;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
||||||
|
@ -54,13 +56,13 @@ impl FolderExpungeCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder.set_expunge_folder(|ctx| {
|
builder.set_expunge_folder(|ctx| {
|
||||||
ctx.imap.as_ref().and_then(ExpungeFolderImap::new)
|
ctx.imap.as_ref().map(ExpungeImapFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_expunge_folder(|ctx| {
|
builder.set_expunge_folder(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(ExpungeFolderMaildir::new)
|
ctx.maildir.as_ref().map(ExpungeMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -68,9 +70,16 @@ impl FolderExpungeCommand {
|
||||||
builder.set_expunge_folder(|ctx| {
|
builder.set_expunge_folder(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(ExpungeFolderMaildir::new)
|
.map(ExpungeMaildirFolder::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
// TODO
|
||||||
|
// builder.set_expunge_folder(|ctx| {
|
||||||
|
// ctx.notmuch.as_ref().map(ExpungeNotmuchFolder::new_boxed)
|
||||||
|
// });
|
||||||
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::folder::list::imap::ListFoldersImap;
|
use email::folder::list::imap::ListImapFolders;
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
use email::folder::list::maildir::ListFoldersMaildir;
|
use email::folder::list::maildir::ListMaildirFolders;
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
use email::folder::list::notmuch::ListNotmuchFolders;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
||||||
|
@ -55,12 +57,12 @@ impl FolderListCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder
|
||||||
.set_list_folders(|ctx| ctx.imap.as_ref().and_then(ListFoldersImap::new));
|
.set_list_folders(|ctx| ctx.imap.as_ref().map(ListImapFolders::new_boxed));
|
||||||
}
|
}
|
||||||
#[cfg(feature = "maildir")]
|
#[cfg(feature = "maildir")]
|
||||||
Some(BackendKind::Maildir) => {
|
Some(BackendKind::Maildir) => {
|
||||||
builder.set_list_folders(|ctx| {
|
builder.set_list_folders(|ctx| {
|
||||||
ctx.maildir.as_ref().and_then(ListFoldersMaildir::new)
|
ctx.maildir.as_ref().map(ListMaildirFolders::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
#[cfg(feature = "account-sync")]
|
#[cfg(feature = "account-sync")]
|
||||||
|
@ -68,9 +70,16 @@ impl FolderListCommand {
|
||||||
builder.set_list_folders(|ctx| {
|
builder.set_list_folders(|ctx| {
|
||||||
ctx.maildir_for_sync
|
ctx.maildir_for_sync
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.and_then(ListFoldersMaildir::new)
|
.map(ListMaildirFolders::new_boxed)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
builder.set_list_folders(|ctx| {
|
||||||
|
ctx.notmuch.as_ref().map(ListNotmuchFolders::new_boxed)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#[cfg(feature = "folder-add")]
|
#[cfg(feature = "folder-add")]
|
||||||
mod create;
|
mod add;
|
||||||
#[cfg(feature = "folder-delete")]
|
#[cfg(feature = "folder-delete")]
|
||||||
mod delete;
|
mod delete;
|
||||||
#[cfg(feature = "folder-expunge")]
|
#[cfg(feature = "folder-expunge")]
|
||||||
|
@ -15,7 +15,7 @@ use clap::Subcommand;
|
||||||
use crate::{config::TomlConfig, printer::Printer};
|
use crate::{config::TomlConfig, printer::Printer};
|
||||||
|
|
||||||
#[cfg(feature = "folder-add")]
|
#[cfg(feature = "folder-add")]
|
||||||
use self::create::AddFolderCommand;
|
use self::add::AddFolderCommand;
|
||||||
#[cfg(feature = "folder-delete")]
|
#[cfg(feature = "folder-delete")]
|
||||||
use self::delete::FolderDeleteCommand;
|
use self::delete::FolderDeleteCommand;
|
||||||
#[cfg(feature = "folder-expunge")]
|
#[cfg(feature = "folder-expunge")]
|
||||||
|
|
|
@ -2,7 +2,11 @@ use anyhow::Result;
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use dialoguer::Confirm;
|
use dialoguer::Confirm;
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
use email::folder::purge::imap::PurgeFolderImap;
|
use email::folder::purge::imap::PurgeImapFolder;
|
||||||
|
// #[cfg(feature = "maildir")]
|
||||||
|
// use email::folder::purge::maildir::PurgeMaildirFolder;
|
||||||
|
// #[cfg(feature = "notmuch")]
|
||||||
|
// use email::folder::purge::notmuch::PurgeNotmuchFolder;
|
||||||
use log::info;
|
use log::info;
|
||||||
use std::process;
|
use std::process;
|
||||||
|
|
||||||
|
@ -64,23 +68,31 @@ impl FolderPurgeCommand {
|
||||||
#[cfg(feature = "imap")]
|
#[cfg(feature = "imap")]
|
||||||
Some(BackendKind::Imap) => {
|
Some(BackendKind::Imap) => {
|
||||||
builder
|
builder
|
||||||
.set_purge_folder(|ctx| ctx.imap.as_ref().and_then(PurgeFolderImap::new));
|
.set_purge_folder(|ctx| ctx.imap.as_ref().map(PurgeImapFolder::new_boxed));
|
||||||
|
}
|
||||||
|
#[cfg(feature = "maildir")]
|
||||||
|
Some(BackendKind::Maildir) => {
|
||||||
|
// TODO
|
||||||
|
// builder.set_purge_folder(|ctx| {
|
||||||
|
// ctx.maildir.as_ref().map(PurgeMaildirFolder::new_boxed)
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
#[cfg(feature = "account-sync")]
|
||||||
|
Some(BackendKind::MaildirForSync) => {
|
||||||
|
// TODO
|
||||||
|
// builder.set_purge_folder(|ctx| {
|
||||||
|
// ctx.maildir_for_sync
|
||||||
|
// .as_ref()
|
||||||
|
// .map(PurgeMaildirFolder::new_boxed)
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
#[cfg(feature = "notmuch")]
|
||||||
|
Some(BackendKind::Notmuch) => {
|
||||||
|
// TODO
|
||||||
|
// builder.set_purge_folder(|ctx| {
|
||||||
|
// ctx.notmuch.as_ref().map(PurgeNotmuchFolder::new_boxed)
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
// TODO
|
|
||||||
// #[cfg(feature = "maildir")]
|
|
||||||
// Some(BackendKind::Maildir) => {
|
|
||||||
// builder.set_purge_folder(|ctx| {
|
|
||||||
// ctx.maildir.as_ref().and_then(PurgeFolderMaildir::new)
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// #[cfg(feature = "account-sync")]
|
|
||||||
// Some(BackendKind::MaildirForSync) => {
|
|
||||||
// builder.set_purge_folder(|ctx| {
|
|
||||||
// ctx.maildir_for_sync
|
|
||||||
// .as_ref()
|
|
||||||
// .and_then(PurgeFolderMaildir::new)
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,20 +1,24 @@
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use dialoguer::Input;
|
use dialoguer::Input;
|
||||||
use email::backend::{BackendConfig, NotmuchBackend, NotmuchConfig};
|
use email::notmuch::config::NotmuchConfig;
|
||||||
|
|
||||||
use crate::config::wizard::THEME;
|
use crate::{backend::config::BackendConfig, ui::THEME};
|
||||||
|
|
||||||
pub(crate) fn configure() -> Result<BackendConfig> {
|
pub(crate) fn configure() -> Result<BackendConfig> {
|
||||||
let mut config = NotmuchConfig::default();
|
let mut config = NotmuchConfig::default();
|
||||||
|
|
||||||
config.db_path = if let Ok(db_path) = NotmuchBackend::get_default_db_path() {
|
let default_database_path = NotmuchConfig::get_default_database_path()
|
||||||
db_path
|
.unwrap_or_default()
|
||||||
} else {
|
.to_string_lossy()
|
||||||
let db_path: String = Input::with_theme(&*THEME)
|
.to_string();
|
||||||
|
|
||||||
|
config.database_path = Some(
|
||||||
|
Input::with_theme(&*THEME)
|
||||||
.with_prompt("Notmuch database path")
|
.with_prompt("Notmuch database path")
|
||||||
.interact_text()?;
|
.default(default_database_path)
|
||||||
db_path.into()
|
.interact_text()?
|
||||||
};
|
.into(),
|
||||||
|
);
|
||||||
|
|
||||||
Ok(BackendConfig::Notmuch(config))
|
Ok(BackendConfig::Notmuch(config))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue