mirror of
https://github.com/pimalaya/himalaya.git
synced 2026-06-17 13:17:55 +08:00
add back notmuch features (part 1)
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
use anyhow::Result;
|
||||
use clap::Parser;
|
||||
#[cfg(feature = "imap")]
|
||||
use email::folder::add::imap::AddFolderImap;
|
||||
use email::folder::add::imap::AddImapFolder;
|
||||
#[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;
|
||||
|
||||
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
||||
@@ -52,19 +54,26 @@ impl AddFolderCommand {
|
||||
|builder| match add_folder_kind {
|
||||
#[cfg(feature = "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")]
|
||||
Some(BackendKind::Maildir) => {
|
||||
builder
|
||||
.set_add_folder(|ctx| ctx.maildir.as_ref().and_then(AddFolderMaildir::new));
|
||||
builder.set_add_folder(|ctx| {
|
||||
ctx.maildir.as_ref().map(AddMaildirFolder::new_boxed)
|
||||
});
|
||||
}
|
||||
#[cfg(feature = "account-sync")]
|
||||
Some(BackendKind::MaildirForSync) => {
|
||||
builder.set_add_folder(|ctx| {
|
||||
ctx.maildir_for_sync
|
||||
.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 dialoguer::Confirm;
|
||||
#[cfg(feature = "imap")]
|
||||
use email::folder::delete::imap::DeleteFolderImap;
|
||||
use email::folder::delete::imap::DeleteImapFolder;
|
||||
#[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 std::process;
|
||||
|
||||
@@ -65,13 +67,14 @@ impl FolderDeleteCommand {
|
||||
|builder| match delete_folder_kind {
|
||||
#[cfg(feature = "imap")]
|
||||
Some(BackendKind::Imap) => {
|
||||
builder
|
||||
.set_delete_folder(|ctx| ctx.imap.as_ref().and_then(DeleteFolderImap::new));
|
||||
builder.set_delete_folder(|ctx| {
|
||||
ctx.imap.as_ref().map(DeleteImapFolder::new_boxed)
|
||||
});
|
||||
}
|
||||
#[cfg(feature = "maildir")]
|
||||
Some(BackendKind::Maildir) => {
|
||||
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")]
|
||||
@@ -79,9 +82,16 @@ impl FolderDeleteCommand {
|
||||
builder.set_delete_folder(|ctx| {
|
||||
ctx.maildir_for_sync
|
||||
.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 clap::Parser;
|
||||
#[cfg(feature = "imap")]
|
||||
use email::folder::expunge::imap::ExpungeFolderImap;
|
||||
use email::folder::expunge::imap::ExpungeImapFolder;
|
||||
#[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;
|
||||
|
||||
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
||||
@@ -54,13 +56,13 @@ impl FolderExpungeCommand {
|
||||
#[cfg(feature = "imap")]
|
||||
Some(BackendKind::Imap) => {
|
||||
builder.set_expunge_folder(|ctx| {
|
||||
ctx.imap.as_ref().and_then(ExpungeFolderImap::new)
|
||||
ctx.imap.as_ref().map(ExpungeImapFolder::new_boxed)
|
||||
});
|
||||
}
|
||||
#[cfg(feature = "maildir")]
|
||||
Some(BackendKind::Maildir) => {
|
||||
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")]
|
||||
@@ -68,9 +70,16 @@ impl FolderExpungeCommand {
|
||||
builder.set_expunge_folder(|ctx| {
|
||||
ctx.maildir_for_sync
|
||||
.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 clap::Parser;
|
||||
#[cfg(feature = "imap")]
|
||||
use email::folder::list::imap::ListFoldersImap;
|
||||
use email::folder::list::imap::ListImapFolders;
|
||||
#[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;
|
||||
|
||||
#[cfg(any(feature = "imap", feature = "maildir", feature = "account-sync"))]
|
||||
@@ -55,12 +57,12 @@ impl FolderListCommand {
|
||||
#[cfg(feature = "imap")]
|
||||
Some(BackendKind::Imap) => {
|
||||
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")]
|
||||
Some(BackendKind::Maildir) => {
|
||||
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")]
|
||||
@@ -68,9 +70,16 @@ impl FolderListCommand {
|
||||
builder.set_list_folders(|ctx| {
|
||||
ctx.maildir_for_sync
|
||||
.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")]
|
||||
mod create;
|
||||
mod add;
|
||||
#[cfg(feature = "folder-delete")]
|
||||
mod delete;
|
||||
#[cfg(feature = "folder-expunge")]
|
||||
@@ -15,7 +15,7 @@ use clap::Subcommand;
|
||||
use crate::{config::TomlConfig, printer::Printer};
|
||||
|
||||
#[cfg(feature = "folder-add")]
|
||||
use self::create::AddFolderCommand;
|
||||
use self::add::AddFolderCommand;
|
||||
#[cfg(feature = "folder-delete")]
|
||||
use self::delete::FolderDeleteCommand;
|
||||
#[cfg(feature = "folder-expunge")]
|
||||
|
||||
+29
-17
@@ -2,7 +2,11 @@ use anyhow::Result;
|
||||
use clap::Parser;
|
||||
use dialoguer::Confirm;
|
||||
#[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 std::process;
|
||||
|
||||
@@ -64,23 +68,31 @@ impl FolderPurgeCommand {
|
||||
#[cfg(feature = "imap")]
|
||||
Some(BackendKind::Imap) => {
|
||||
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)
|
||||
// });
|
||||
// }
|
||||
_ => (),
|
||||
},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user