summaryrefslogtreecommitdiffstats
path: root/lib/domain/libimagmail/src/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/domain/libimagmail/src/config.rs')
-rw-r--r--lib/domain/libimagmail/src/config.rs131
1 files changed, 0 insertions, 131 deletions
diff --git a/lib/domain/libimagmail/src/config.rs b/lib/domain/libimagmail/src/config.rs
deleted file mode 100644
index 4c59cb87..00000000
--- a/lib/domain/libimagmail/src/config.rs
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-// imag - the personal information management suite for the commandline
-// Copyright (C) 2015-2020 Matthias Beyer <mail@beyermatthias.de> and contributors
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; version
-// 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-//
-
-use std::path::PathBuf;
-
-/// A struct representing a full mail configuration, required for working with this library
-///
-/// For convenience reasons, this implements Serialize and Deserialize, so it can be fetched from a
-/// configuration file for example
-///
-/// # TODO
-///
-/// Figure out how to use handlebars with variables on this. Right now the support for that is not
-/// implemented yet.
-///
-#[derive(Serialize, Deserialize, Debug)]
-pub struct MailConfig {
- default_account : String,
- accounts : Vec<MailAccountConfig>,
- fetchcommand : MailCommand,
- postfetchcommand : Option<MailCommand>,
- sendcommand : MailCommand,
- postsendcommand : Option<MailCommand>,
-}
-
-impl MailConfig {
- pub fn default_account(&self) -> &String {
- &self.default_account
- }
-
- pub fn accounts(&self) -> &Vec<MailAccountConfig> {
- &self.accounts
- }
-
- pub fn account(&self, name: &str) -> Option<&MailAccountConfig> {
- self.accounts()
- .iter()
- .find(|a| a.name == name)
- }
-
- pub fn fetchcommand(&self) -> &MailCommand {
- &self.fetchcommand
- }
-
- pub fn postfetchcommand(&self) -> Option<&MailCommand> {
- self.postfetchcommand.as_ref()
- }
-
- pub fn sendcommand(&self) -> &MailCommand {
- &self.sendcommand
- }
-
- pub fn postsendcommand(&self) -> Option<&MailCommand> {
- self.postsendcommand.as_ref()
- }
-
- pub fn fetchcommand_for_account(&self, account_name: &str) -> &MailCommand {
- self.accounts()
- .iter()
- .find(|a| a.name == account_name)
- .and_then(|a| a.fetchcommand.as_ref())
- .unwrap_or_else(|| self.fetchcommand())
- }
-
- pub fn postfetchcommand_for_account(&self, account_name: &str) -> Option<&MailCommand> {
- self.accounts()
- .iter()
- .find(|a| a.name == account_name)
- .and_then(|a| a.postfetchcommand.as_ref())
- .or_else(|| self.postfetchcommand())
- }
-
- pub fn sendcommand_for_account(&self, account_name: &str) -> &MailCommand {
- self.accounts()
- .iter()
- .find(|a| a.name == account_name)
- .and_then(|a| a.sendcommand.as_ref())
- .unwrap_or_else(|| self.sendcommand())
- }
-
- pub fn postsendcommand_for_account(&self, account_name: &str) -> Option<&MailCommand> {
- self.accounts()
- .iter()
- .find(|a| a.name == account_name)
- .and_then(|a| a.postsendcommand.as_ref())
- .or_else(|| self.postsendcommand())
- }
-
-}
-
-/// A configuration for a single mail accounts
-///
-/// If one of the keys `fetchcommand`, `postfetchcommand`, `sendcommand` or `postsendcommand` is
-/// not available, the implementation of the `MailConfig` will automatically use the global
-/// configuration if applicable.
-#[derive(Serialize, Deserialize, Debug)]
-pub struct MailAccountConfig {
- pub name : String,
- pub outgoingbox : PathBuf,
- pub draftbox : PathBuf,
- pub sentbox : PathBuf,
- pub maildirroot : PathBuf,
- pub fetchcommand : Option<MailCommand>,
- pub postfetchcommand : Option<MailCommand>,
- pub sendcommand : Option<MailCommand>,
- pub postsendcommand : Option<MailCommand>,
-}
-
-#[derive(Serialize, Deserialize, Debug)]
-pub struct MailCommand {
- command: String,
- env: Vec<String>,
- args: Vec<String>,
-}
-