From 07078437a28c96032b097afcf803f68ba3bd0228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20DOUIN?= Date: Mon, 1 Jun 2026 17:20:57 +0200 Subject: [PATCH] refactor: drop HIMALAYA_CONFIG support Clap env vars are hard to customize across Pimalaya projects, and they can always be replaced by arg or flag. --- CHANGELOG.md | 2 ++ Cargo.lock | 10 ++++----- Cargo.toml | 2 +- README.md | 2 +- config.sample.toml | 6 +++--- src/cli.rs | 21 +++++-------------- src/imap/message/save.rs | 2 +- src/jmap/email/import.rs | 2 +- src/m2dir/message/save.rs | 2 +- src/maildir/message/save.rs | 2 +- src/main.rs | 2 +- src/shared/{attachments => attachment}/cli.rs | 2 +- .../{attachments => attachment}/download.rs | 4 ++-- .../{attachments => attachment}/list.rs | 2 +- src/shared/{attachments => attachment}/mod.rs | 0 src/shared/{envelopes => envelope}/cli.rs | 2 +- src/shared/{envelopes => envelope}/list.rs | 2 +- src/shared/{envelopes => envelope}/mod.rs | 0 src/shared/{envelopes => envelope}/search.rs | 4 ++-- src/shared/{flags => flag}/add.rs | 4 ++-- src/shared/{flags => flag}/arg.rs | 0 src/shared/{flags => flag}/cli.rs | 2 +- src/shared/{flags => flag}/mod.rs | 0 src/shared/{flags => flag}/remove.rs | 4 ++-- src/shared/{flags => flag}/set.rs | 4 ++-- src/shared/{mailboxes => mailbox}/arg.rs | 0 src/shared/{mailboxes => mailbox}/cli.rs | 2 +- src/shared/{mailboxes => mailbox}/list.rs | 0 src/shared/{mailboxes => mailbox}/mod.rs | 0 src/shared/{messages => message}/add.rs | 4 ++-- src/shared/{messages => message}/arg.rs | 0 src/shared/{messages => message}/builder.rs | 0 src/shared/{messages => message}/cli.rs | 2 +- src/shared/{messages => message}/compose.rs | 2 +- src/shared/{messages => message}/copy.rs | 2 +- src/shared/{messages => message}/forward.rs | 2 +- src/shared/{messages => message}/handler.rs | 0 src/shared/{messages => message}/mod.rs | 0 src/shared/{messages => message}/mv.rs | 2 +- src/shared/{messages => message}/read.rs | 0 src/shared/{messages => message}/reply.rs | 2 +- src/shared/{messages => message}/send.rs | 2 +- src/shared/mod.rs | 10 ++++----- src/smtp/message/send.rs | 2 +- 44 files changed, 53 insertions(+), 62 deletions(-) rename src/shared/{attachments => attachment}/cli.rs (95%) rename src/shared/{attachments => attachment}/download.rs (98%) rename src/shared/{attachments => attachment}/list.rs (99%) rename src/shared/{attachments => attachment}/mod.rs (100%) rename src/shared/{envelopes => envelope}/cli.rs (95%) rename src/shared/{envelopes => envelope}/list.rs (99%) rename src/shared/{envelopes => envelope}/mod.rs (100%) rename src/shared/{envelopes => envelope}/search.rs (98%) rename src/shared/{flags => flag}/add.rs (96%) rename src/shared/{flags => flag}/arg.rs (100%) rename src/shared/{flags => flag}/cli.rs (95%) rename src/shared/{flags => flag}/mod.rs (100%) rename src/shared/{flags => flag}/remove.rs (96%) rename src/shared/{flags => flag}/set.rs (96%) rename src/shared/{mailboxes => mailbox}/arg.rs (100%) rename src/shared/{mailboxes => mailbox}/cli.rs (94%) rename src/shared/{mailboxes => mailbox}/list.rs (100%) rename src/shared/{mailboxes => mailbox}/mod.rs (100%) rename src/shared/{messages => message}/add.rs (98%) rename src/shared/{messages => message}/arg.rs (100%) rename src/shared/{messages => message}/builder.rs (100%) rename src/shared/{messages => message}/cli.rs (99%) rename src/shared/{messages => message}/compose.rs (99%) rename src/shared/{messages => message}/copy.rs (97%) rename src/shared/{messages => message}/forward.rs (99%) rename src/shared/{messages => message}/handler.rs (100%) rename src/shared/{messages => message}/mod.rs (100%) rename src/shared/{messages => message}/mv.rs (97%) rename src/shared/{messages => message}/read.rs (100%) rename src/shared/{messages => message}/reply.rs (99%) rename src/shared/{messages => message}/send.rs (98%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cb84492..5a04d363 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Removed the `[message.composer.*]` and `[message.reader.*]` config tables together with the `messages compose-with`, `reply-with`, `forward-with`, `mailto` and `read-with` subcommands. The "stdout = MIME draft" contract was structurally incompatible with composers that spawn an interactive editor: the editor inherited the parent's piped stdout, breaking its UI. Richer composition is now wired through standalone tools chained into `messages send` / `messages add` via a tempfile or shell process substitution; see the README and [mml](https://github.com/pimalaya/mml). +- Dropped `HIMALAYA_CONFIG` environment-variable support on `-c/--config`. The flag still accepts one or more `:`-separated paths on the command line; users relying on the env var should switch to a shell alias or wrapper script. + ## [1.2.0] - 2026-02-19 ### Added diff --git a/Cargo.lock b/Cargo.lock index 5fd0e3ad..73ef8273 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1026,7 +1026,7 @@ dependencies = [ [[package]] name = "imap-codec" version = "2.0.0-alpha.7" -source = "git+https://github.com/soywod/imap-codec#dfd4f1f179defb6b479da3a95ed603170f0174ad" +source = "git+https://github.com/soywod/imap-codec#f1c29c7b5368063922778afdbcaefa18ed497a5e" dependencies = [ "abnf-core", "base64", @@ -1039,7 +1039,7 @@ dependencies = [ [[package]] name = "imap-types" version = "2.0.0-alpha.6" -source = "git+https://github.com/soywod/imap-codec#dfd4f1f179defb6b479da3a95ed603170f0174ad" +source = "git+https://github.com/soywod/imap-codec#f1c29c7b5368063922778afdbcaefa18ed497a5e" dependencies = [ "base64", "bounded-static", @@ -1664,7 +1664,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pimalaya-cli" version = "0.0.1" -source = "git+https://github.com/pimalaya/cli#8ee488f8701b9e4a5bb29dbcbc051b399b78e5c6" +source = "git+https://github.com/pimalaya/cli#313c2e999ea9157fa42c84a6ae867451d8308114" dependencies = [ "anyhow", "clap", @@ -2006,9 +2006,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" +checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" dependencies = [ "openssl-probe", "rustls-pki-types", diff --git a/Cargo.toml b/Cargo.toml index b1e42d10..ecf8bbd8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,7 +41,7 @@ pimalaya-cli = { version = "0.0.1", default-features = false, features = ["build anyhow = "1" base64 = { version = "0.22", optional = true } chrono = { version = "0.4", default-features = false, features = ["clock"] } -clap = { version = "4.4", features = ["derive", "env", "wrap_help"] } +clap = { version = "4.4", features = ["derive", "wrap_help"] } comfy-table = "7" convert_case = { version = "0.11", optional = true } crossterm = { version = "0.29", default-features = false, features = ["serde"] } diff --git a/README.md b/README.md index 0c6d662b..d508962f 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,7 @@ A persistent configuration is loaded from the first valid path among: These are the same paths the [himalaya-tui](https://github.com/pimalaya/himalaya-tui) TUI looks at: one TOML file backs both binaries. CLI-only fields and TUI-only sections coexist without errors. See [config.sample.toml](./config.sample.toml) for a documented template. -Override the path with `-c ` or `HIMALAYA_CONFIG=`; multiple paths can be passed at once, separated by `:`. The first one is the base and the rest are deep-merged on top. +Override the path with `-c `; multiple paths can be passed at once, separated by `:`. The first one is the base and the rest are deep-merged on top. Accounts can be (re)configured later with `himalaya account configure `. The wizard skips discovery in this mode: it reuses the existing values as prompt defaults. diff --git a/config.sample.toml b/config.sample.toml index aa58ddfe..c5d14cba 100644 --- a/config.sample.toml +++ b/config.sample.toml @@ -6,9 +6,9 @@ # - $HOME/.config/himalaya/config.toml # - $HOME/.himalayarc # -# Override with `himalaya -c ` or `HIMALAYA_CONFIG=`. Multiple paths -# can be passed at once, separated by `:`; the first one is the base and the -# rest are deep-merged on top of it. +# Override with `himalaya -c `. Multiple paths can be passed at once, +# separated by `:`; the first one is the base and the rest are deep-merged on +# top of it. # # Run `himalaya` once with no config file to launch the wizard, which discovers # IMAP/SMTP/JMAP defaults via PACC, Thunderbird Autoconfiguration and RFC 6186 diff --git a/src/cli.rs b/src/cli.rs index f5a2216d..4ed5054e 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -21,9 +21,8 @@ use anyhow::{Result, bail}; use clap::{CommandFactory, Parser, Subcommand}; use pimalaya_cli::{ clap::{ - args::{AccountFlag, JsonFlag, LogFlags}, + args::{AccountFlag, ConfigFlags, JsonFlag, LogFlags}, commands::{CompletionCommand, ManualCommand}, - parsers::path_parser, }, long_version, printer::Printer, @@ -45,8 +44,8 @@ use crate::{ backend::Backend, config::Config, shared::{ - attachments::cli::AttachmentCommand, client::EmailClient, envelopes::cli::EnvelopeCommand, - flags::cli::FlagCommand, mailboxes::cli::MailboxCommand, messages::cli::MessageCommand, + attachment::cli::AttachmentCommand, client::EmailClient, envelope::cli::EnvelopeCommand, + flag::cli::FlagCommand, mailbox::cli::MailboxCommand, message::cli::MessageCommand, }, wizard, }; @@ -60,18 +59,8 @@ pub struct Cli { #[command(subcommand)] pub cmd: Command, - /// Override the default configuration file path. - /// - /// The given paths are shell-expanded then canonicalized (if - /// applicable). If the first path does not point to a valid file, - /// the wizard will propose to assist you in the creation of the - /// configuration file. Other paths are merged with the first one, - /// which allows you to separate your public config from your - /// private(s) one(s). Multiple paths can also be provided by - /// delimiting them with `:` (like `$PATH` in a POSIX shell). - #[arg(short, long = "config", global = true, env = "HIMALAYA_CONFIG")] - #[arg(value_name = "PATH", value_parser = path_parser, value_delimiter = ':')] - pub config_paths: Vec, + #[command(flatten)] + pub config: ConfigFlags, #[command(flatten)] pub account: AccountFlag, /// Force a specific backend for cross-protocol commands. diff --git a/src/imap/message/save.rs b/src/imap/message/save.rs index 3087ecee..783a90eb 100644 --- a/src/imap/message/save.rs +++ b/src/imap/message/save.rs @@ -24,7 +24,7 @@ use pimalaya_cli::printer::{Message, Printer}; use crate::{ imap::{client::ImapClient, mailbox::arg::MailboxNameArg}, - shared::messages::arg::MessageArg, + shared::message::arg::MessageArg, }; /// Save a message to a mailbox. diff --git a/src/jmap/email/import.rs b/src/jmap/email/import.rs index 87be388c..f3f5f56f 100644 --- a/src/jmap/email/import.rs +++ b/src/jmap/email/import.rs @@ -32,7 +32,7 @@ use crate::{ client::{JmapClient, jmap_http_auth}, error::format_set_error, }, - shared::messages::arg::MessageArg, + shared::message::arg::MessageArg, }; /// Import an RFC 5322 message into a mailbox (upload + Email/import). diff --git a/src/m2dir/message/save.rs b/src/m2dir/message/save.rs index 6c50b2ec..a3b0cd41 100644 --- a/src/m2dir/message/save.rs +++ b/src/m2dir/message/save.rs @@ -25,7 +25,7 @@ use serde::Serialize; use crate::{ m2dir::{arg::M2dirNameFlag, client::M2dirClient}, - shared::messages::arg::MessageArg, + shared::message::arg::MessageArg, }; /// Save a message to an m2dir folder. diff --git a/src/maildir/message/save.rs b/src/maildir/message/save.rs index 218edc66..9baa9316 100644 --- a/src/maildir/message/save.rs +++ b/src/maildir/message/save.rs @@ -29,7 +29,7 @@ use crate::{ client::MaildirClient, flag::arg::FlagArg, }, - shared::messages::arg::MessageArg, + shared::message::arg::MessageArg, }; /// Save a message to a mailbox. diff --git a/src/main.rs b/src/main.rs index ce6b2eb9..553dd057 100644 --- a/src/main.rs +++ b/src/main.rs @@ -47,7 +47,7 @@ fn main() { fn execute(cli: Cli, printer: &mut StdoutPrinter) -> Result<()> { Logger::try_init(&cli.log)?; - let config = cli.config_paths.as_ref(); + let config = cli.config.paths.as_ref(); let account = cli.account.name.as_deref(); let backend = cli.backend; cli.cmd.execute(printer, config, account, backend) diff --git a/src/shared/attachments/cli.rs b/src/shared/attachment/cli.rs similarity index 95% rename from src/shared/attachments/cli.rs rename to src/shared/attachment/cli.rs index ccc33e4f..76bd74b4 100644 --- a/src/shared/attachments/cli.rs +++ b/src/shared/attachment/cli.rs @@ -21,7 +21,7 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ - attachments::{download::AttachmentDownloadCommand, list::AttachmentListCommand}, + attachment::{download::AttachmentDownloadCommand, list::AttachmentListCommand}, client::EmailClient, }; diff --git a/src/shared/attachments/download.rs b/src/shared/attachment/download.rs similarity index 98% rename from src/shared/attachments/download.rs rename to src/shared/attachment/download.rs index 641ba822..fb0ac258 100644 --- a/src/shared/attachments/download.rs +++ b/src/shared/attachment/download.rs @@ -28,9 +28,9 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ - attachments::list::{Attachment, AttachmentColors, Attachments, mime_string}, + attachment::list::{Attachment, AttachmentColors, Attachments, mime_string}, client::EmailClient, - mailboxes::arg::MailboxArg, + mailbox::arg::MailboxArg, }; /// Download specific attachments of a single message to disk. diff --git a/src/shared/attachments/list.rs b/src/shared/attachment/list.rs similarity index 99% rename from src/shared/attachments/list.rs rename to src/shared/attachment/list.rs index b33e0507..0741533e 100644 --- a/src/shared/attachments/list.rs +++ b/src/shared/attachment/list.rs @@ -26,7 +26,7 @@ use pimalaya_cli::printer::Printer; use serde::Serialize; use crate::account::context::Account; -use crate::shared::{client::EmailClient, mailboxes::arg::MailboxArg}; +use crate::shared::{client::EmailClient, mailbox::arg::MailboxArg}; /// List the attachments carried by a single message in the active /// account. diff --git a/src/shared/attachments/mod.rs b/src/shared/attachment/mod.rs similarity index 100% rename from src/shared/attachments/mod.rs rename to src/shared/attachment/mod.rs diff --git a/src/shared/envelopes/cli.rs b/src/shared/envelope/cli.rs similarity index 95% rename from src/shared/envelopes/cli.rs rename to src/shared/envelope/cli.rs index ef90cea3..e4916caa 100644 --- a/src/shared/envelopes/cli.rs +++ b/src/shared/envelope/cli.rs @@ -22,7 +22,7 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - envelopes::{list::EnvelopeListCommand, search::EnvelopeSearchCommand}, + envelope::{list::EnvelopeListCommand, search::EnvelopeSearchCommand}, }; /// Shared API to manage envelopes for the active account. diff --git a/src/shared/envelopes/list.rs b/src/shared/envelope/list.rs similarity index 99% rename from src/shared/envelopes/list.rs rename to src/shared/envelope/list.rs index ea17925d..3fe894c5 100644 --- a/src/shared/envelopes/list.rs +++ b/src/shared/envelope/list.rs @@ -27,7 +27,7 @@ use pimalaya_cli::printer::Printer; use serde::Serialize; use crate::account::context::Account; -use crate::shared::{client::EmailClient, mailboxes::arg::MailboxArg}; +use crate::shared::{client::EmailClient, mailbox::arg::MailboxArg}; /// List envelopes for the active account, regardless of the underlying /// backend (IMAP, JMAP or Maildir). diff --git a/src/shared/envelopes/mod.rs b/src/shared/envelope/mod.rs similarity index 100% rename from src/shared/envelopes/mod.rs rename to src/shared/envelope/mod.rs diff --git a/src/shared/envelopes/search.rs b/src/shared/envelope/search.rs similarity index 98% rename from src/shared/envelopes/search.rs rename to src/shared/envelope/search.rs index eec15e69..c69490ac 100644 --- a/src/shared/envelopes/search.rs +++ b/src/shared/envelope/search.rs @@ -26,8 +26,8 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - envelopes::list::{EnvelopeColors, Envelopes, FlagChars}, - mailboxes::arg::MailboxArg, + envelope::list::{EnvelopeColors, Envelopes, FlagChars}, + mailbox::arg::MailboxArg, }; /// Search envelopes for the active account using the shared search diff --git a/src/shared/flags/add.rs b/src/shared/flag/add.rs similarity index 96% rename from src/shared/flags/add.rs rename to src/shared/flag/add.rs index 7ff1d386..a58c2e04 100644 --- a/src/shared/flags/add.rs +++ b/src/shared/flag/add.rs @@ -26,8 +26,8 @@ use serde::Serialize; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - flags::arg::{FlagsArg, MessageIdsArg}, - mailboxes::arg::MailboxArg, + flag::arg::{FlagsArg, MessageIdsArg}, + mailbox::arg::MailboxArg, }; /// Add flag(s) to message(s) for the active account. diff --git a/src/shared/flags/arg.rs b/src/shared/flag/arg.rs similarity index 100% rename from src/shared/flags/arg.rs rename to src/shared/flag/arg.rs diff --git a/src/shared/flags/cli.rs b/src/shared/flag/cli.rs similarity index 95% rename from src/shared/flags/cli.rs rename to src/shared/flag/cli.rs index eb07398e..325c4e91 100644 --- a/src/shared/flags/cli.rs +++ b/src/shared/flag/cli.rs @@ -22,7 +22,7 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - flags::{add::FlagAddCommand, remove::FlagRemoveCommand, set::FlagSetCommand}, + flag::{add::FlagAddCommand, remove::FlagRemoveCommand, set::FlagSetCommand}, }; /// Shared API to manage flags for the active account. diff --git a/src/shared/flags/mod.rs b/src/shared/flag/mod.rs similarity index 100% rename from src/shared/flags/mod.rs rename to src/shared/flag/mod.rs diff --git a/src/shared/flags/remove.rs b/src/shared/flag/remove.rs similarity index 96% rename from src/shared/flags/remove.rs rename to src/shared/flag/remove.rs index 9449f3c8..e4b35000 100644 --- a/src/shared/flags/remove.rs +++ b/src/shared/flag/remove.rs @@ -26,8 +26,8 @@ use serde::Serialize; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - flags::arg::{FlagsArg, MessageIdsArg}, - mailboxes::arg::MailboxArg, + flag::arg::{FlagsArg, MessageIdsArg}, + mailbox::arg::MailboxArg, }; /// Remove flag(s) from message(s) for the active account. diff --git a/src/shared/flags/set.rs b/src/shared/flag/set.rs similarity index 96% rename from src/shared/flags/set.rs rename to src/shared/flag/set.rs index 3c64ccb6..17e1b42b 100644 --- a/src/shared/flags/set.rs +++ b/src/shared/flag/set.rs @@ -26,8 +26,8 @@ use serde::Serialize; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - flags::arg::{FlagsArg, MessageIdsArg}, - mailboxes::arg::MailboxArg, + flag::arg::{FlagsArg, MessageIdsArg}, + mailbox::arg::MailboxArg, }; /// Replace flag(s) of message(s) for the active account. diff --git a/src/shared/mailboxes/arg.rs b/src/shared/mailbox/arg.rs similarity index 100% rename from src/shared/mailboxes/arg.rs rename to src/shared/mailbox/arg.rs diff --git a/src/shared/mailboxes/cli.rs b/src/shared/mailbox/cli.rs similarity index 94% rename from src/shared/mailboxes/cli.rs rename to src/shared/mailbox/cli.rs index a0f1263e..eef18e6a 100644 --- a/src/shared/mailboxes/cli.rs +++ b/src/shared/mailbox/cli.rs @@ -20,7 +20,7 @@ use clap::Subcommand; use pimalaya_cli::printer::Printer; use crate::account::context::Account; -use crate::shared::{client::EmailClient, mailboxes::list::MailboxListCommand}; +use crate::shared::{client::EmailClient, mailbox::list::MailboxListCommand}; /// Shared API to manage mailboxes for the active account. /// diff --git a/src/shared/mailboxes/list.rs b/src/shared/mailbox/list.rs similarity index 100% rename from src/shared/mailboxes/list.rs rename to src/shared/mailbox/list.rs diff --git a/src/shared/mailboxes/mod.rs b/src/shared/mailbox/mod.rs similarity index 100% rename from src/shared/mailboxes/mod.rs rename to src/shared/mailbox/mod.rs diff --git a/src/shared/messages/add.rs b/src/shared/message/add.rs similarity index 98% rename from src/shared/messages/add.rs rename to src/shared/message/add.rs index 8a3909db..01c13a42 100644 --- a/src/shared/messages/add.rs +++ b/src/shared/message/add.rs @@ -26,8 +26,8 @@ use serde::Serialize; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - flags::arg::FlagArg, - messages::{ + flag::arg::FlagArg, + message::{ arg::MessageArg, handler::{self, Outcome}, }, diff --git a/src/shared/messages/arg.rs b/src/shared/message/arg.rs similarity index 100% rename from src/shared/messages/arg.rs rename to src/shared/message/arg.rs diff --git a/src/shared/messages/builder.rs b/src/shared/message/builder.rs similarity index 100% rename from src/shared/messages/builder.rs rename to src/shared/message/builder.rs diff --git a/src/shared/messages/cli.rs b/src/shared/message/cli.rs similarity index 99% rename from src/shared/messages/cli.rs rename to src/shared/message/cli.rs index f7d8b721..4915ea1e 100644 --- a/src/shared/messages/cli.rs +++ b/src/shared/message/cli.rs @@ -22,7 +22,7 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - messages::{ + message::{ add::MessageAddCommand, compose::MessageComposeCommand, copy::MessageCopyCommand, forward::MessageForwardCommand, mv::MessageMoveCommand, read::MessageReadCommand, reply::MessageReplyCommand, send::MessageSendCommand, diff --git a/src/shared/messages/compose.rs b/src/shared/message/compose.rs similarity index 99% rename from src/shared/messages/compose.rs rename to src/shared/message/compose.rs index 04b001ad..53faa79a 100644 --- a/src/shared/messages/compose.rs +++ b/src/shared/message/compose.rs @@ -24,7 +24,7 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - messages::{ + message::{ builder::{self, BuilderArgs}, handler, }, diff --git a/src/shared/messages/copy.rs b/src/shared/message/copy.rs similarity index 97% rename from src/shared/messages/copy.rs rename to src/shared/message/copy.rs index 2723f4d9..7cab79e9 100644 --- a/src/shared/messages/copy.rs +++ b/src/shared/message/copy.rs @@ -20,7 +20,7 @@ use clap::Parser; use pimalaya_cli::printer::{Message, Printer}; use crate::account::context::Account; -use crate::shared::{client::EmailClient, flags::arg::MessageIdsArg}; +use crate::shared::{client::EmailClient, flag::arg::MessageIdsArg}; /// Copy message(s) from one mailbox to another within the active /// account. diff --git a/src/shared/messages/forward.rs b/src/shared/message/forward.rs similarity index 99% rename from src/shared/messages/forward.rs rename to src/shared/message/forward.rs index 33eacbca..116741d3 100644 --- a/src/shared/messages/forward.rs +++ b/src/shared/message/forward.rs @@ -24,7 +24,7 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - messages::{ + message::{ builder::{self, BuilderArgs, PostingStyle, SourceArgs, SourceMode}, handler, }, diff --git a/src/shared/messages/handler.rs b/src/shared/message/handler.rs similarity index 100% rename from src/shared/messages/handler.rs rename to src/shared/message/handler.rs diff --git a/src/shared/messages/mod.rs b/src/shared/message/mod.rs similarity index 100% rename from src/shared/messages/mod.rs rename to src/shared/message/mod.rs diff --git a/src/shared/messages/mv.rs b/src/shared/message/mv.rs similarity index 97% rename from src/shared/messages/mv.rs rename to src/shared/message/mv.rs index 6651df5f..92a75cfa 100644 --- a/src/shared/messages/mv.rs +++ b/src/shared/message/mv.rs @@ -20,7 +20,7 @@ use clap::Parser; use pimalaya_cli::printer::{Message, Printer}; use crate::account::context::Account; -use crate::shared::{client::EmailClient, flags::arg::MessageIdsArg}; +use crate::shared::{client::EmailClient, flag::arg::MessageIdsArg}; /// Move message(s) from one mailbox to another within the active /// account. diff --git a/src/shared/messages/read.rs b/src/shared/message/read.rs similarity index 100% rename from src/shared/messages/read.rs rename to src/shared/message/read.rs diff --git a/src/shared/messages/reply.rs b/src/shared/message/reply.rs similarity index 99% rename from src/shared/messages/reply.rs rename to src/shared/message/reply.rs index e1fd90cb..002a3aa8 100644 --- a/src/shared/messages/reply.rs +++ b/src/shared/message/reply.rs @@ -24,7 +24,7 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - messages::{ + message::{ builder::{self, BuilderArgs, PostingStyle, SourceArgs, SourceMode}, handler, }, diff --git a/src/shared/messages/send.rs b/src/shared/message/send.rs similarity index 98% rename from src/shared/messages/send.rs rename to src/shared/message/send.rs index f54ec3d7..0ce44361 100644 --- a/src/shared/messages/send.rs +++ b/src/shared/message/send.rs @@ -22,7 +22,7 @@ use pimalaya_cli::printer::Printer; use crate::account::context::Account; use crate::shared::{ client::EmailClient, - messages::{arg::MessageArg, handler}, + message::{arg::MessageArg, handler}, }; /// Send a message via the active account. diff --git a/src/shared/mod.rs b/src/shared/mod.rs index f06f7362..0e149566 100644 --- a/src/shared/mod.rs +++ b/src/shared/mod.rs @@ -16,9 +16,9 @@ // along with this program. If not, see . #[cfg(any(feature = "imap", feature = "jmap", feature = "maildir"))] -pub mod attachments; +pub mod attachment; pub mod client; -pub mod envelopes; -pub mod flags; -pub mod mailboxes; -pub mod messages; +pub mod envelope; +pub mod flag; +pub mod mailbox; +pub mod message; diff --git a/src/smtp/message/send.rs b/src/smtp/message/send.rs index 73b70d47..08026fef 100644 --- a/src/smtp/message/send.rs +++ b/src/smtp/message/send.rs @@ -26,7 +26,7 @@ use io_smtp::rfc5321::types::{ use mail_parser::{Addr, Address, HeaderName, HeaderValue, MessageParser}; use pimalaya_cli::printer::{Message, Printer}; -use crate::{shared::messages::arg::MessageArg, smtp::client::SmtpClient}; +use crate::{shared::message::arg::MessageArg, smtp::client::SmtpClient}; /// Send a raw RFC 5322 message via SMTP. ///