From f2158e71d2329b071e7f3dcc11063f473b3c6692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20DOUIN?= Date: Tue, 23 Mar 2021 22:26:29 +0100 Subject: [PATCH] extract output cli+utils --- src/app.rs | 11 ++--------- src/config.rs | 2 +- src/imap/cli.rs | 2 +- src/main.rs | 5 ++++- src/mbox/cli.rs | 4 ++-- src/msg/cli.rs | 4 ++-- src/output/cli.rs | 11 +++++++++++ src/{output.rs => output/utils.rs} | 0 8 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 src/output/cli.rs rename src/{output.rs => output/utils.rs} (100%) diff --git a/src/app.rs b/src/app.rs index a39b2aa..73d1ef7 100644 --- a/src/app.rs +++ b/src/app.rs @@ -7,6 +7,7 @@ use crate::{ imap::cli::{imap_matches, imap_subcmds}, mbox::cli::{mbox_arg, mbox_matches, mbox_subcmds}, msg::cli::{msg_matches, msg_subcmds}, + output::cli::output_args, }; error_chain! { @@ -26,15 +27,7 @@ impl<'a> App<'a> { .version(env!("CARGO_PKG_VERSION")) .about(env!("CARGO_PKG_DESCRIPTION")) .author(env!("CARGO_PKG_AUTHORS")) - .arg( - Arg::with_name("output") - .long("output") - .short("o") - .help("Defines the output format") - .value_name("STRING") - .possible_values(&["plain", "json"]) - .default_value("plain"), - ) + .args(&output_args()) .arg( Arg::with_name("account") .long("account") diff --git a/src/config.rs b/src/config.rs index f86c44a..abd6f29 100644 --- a/src/config.rs +++ b/src/config.rs @@ -4,7 +4,7 @@ use serde::Deserialize; use std::{collections::HashMap, env, fs::File, io::Read, path::PathBuf}; use toml; -use crate::output::run_cmd; +use crate::output::utils::run_cmd; error_chain! {} diff --git a/src/imap/cli.rs b/src/imap/cli.rs index 3d8040a..60ed2c7 100644 --- a/src/imap/cli.rs +++ b/src/imap/cli.rs @@ -20,7 +20,7 @@ pub fn imap_matches(matches: &ArgMatches) -> Result { let mut imap_conn = ImapConnector::new(&account)?; let mbox = matches.value_of("mailbox").unwrap(); - if let Some(matches) = matches.subcommand_matches("idle") { + if let Some(_) = matches.subcommand_matches("idle") { imap_conn.idle(&config, &mbox)?; imap_conn.logout(); return Ok(true); diff --git a/src/main.rs b/src/main.rs index 8497d0a..81603e5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,12 @@ mod app; mod config; mod input; -mod output; mod smtp; mod table; +mod output { + pub(crate) mod cli; + pub(crate) mod utils; +} mod imap { pub(crate) mod cli; pub(crate) mod model; diff --git a/src/mbox/cli.rs b/src/mbox/cli.rs index e1b6d5d..6c711b4 100644 --- a/src/mbox/cli.rs +++ b/src/mbox/cli.rs @@ -1,14 +1,14 @@ use clap::{self, App, Arg, ArgMatches, SubCommand}; use error_chain::error_chain; -use crate::{config::Config, imap::model::ImapConnector, output::print}; +use crate::{config::Config, imap::model::ImapConnector, output::utils::print}; error_chain! { links { Config(crate::config::Error, crate::config::ErrorKind); Imap(crate::imap::model::Error, crate::imap::model::ErrorKind); MsgCli(crate::msg::cli::Error, crate::msg::cli::ErrorKind); - Output(crate::output::Error, crate::output::ErrorKind); + OutputUtils(crate::output::utils::Error, crate::output::utils::ErrorKind); } } diff --git a/src/msg/cli.rs b/src/msg/cli.rs index a7557ba..cc1fa10 100644 --- a/src/msg/cli.rs +++ b/src/msg/cli.rs @@ -7,7 +7,7 @@ use crate::{ imap::model::ImapConnector, input, msg::model::{Attachments, Msg, Msgs, ReadableMsg}, - output::print, + output::utils::print, smtp, }; @@ -17,7 +17,7 @@ error_chain! { Imap(crate::imap::model::Error, crate::imap::model::ErrorKind); Input(crate::input::Error, crate::input::ErrorKind); MsgModel(crate::msg::model::Error, crate::msg::model::ErrorKind); - Output(crate::output::Error, crate::output::ErrorKind); + OutputUtils(crate::output::utils::Error, crate::output::utils::ErrorKind); Smtp(crate::smtp::Error, crate::smtp::ErrorKind); } } diff --git a/src/output/cli.rs b/src/output/cli.rs new file mode 100644 index 0000000..3344f5e --- /dev/null +++ b/src/output/cli.rs @@ -0,0 +1,11 @@ +use clap::Arg; + +pub fn output_args<'a>() -> Vec> { + vec![Arg::with_name("output") + .long("output") + .short("o") + .help("Defines the output format") + .value_name("STRING") + .possible_values(&["plain", "json"]) + .default_value("plain")] +} diff --git a/src/output.rs b/src/output/utils.rs similarity index 100% rename from src/output.rs rename to src/output/utils.rs