♻️ refactor(cli): consolidate rules and labels under config subcommand

- move rules_cli to config_cli
- rename rules subcommand to config
- simplify cli structure for better user experience
This commit is contained in:
Jeremiah Russell
2025-10-09 07:11:41 +01:00
committed by Jeremiah Russell
parent 661aac7d67
commit 6f96fbac94

View File

@@ -1,18 +1,19 @@
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
mod config_cli;
mod label_cli; mod label_cli;
mod message_cli; mod message_cli;
mod rules_cli;
mod trash_cli; mod trash_cli;
use cull_gmail::{Config, Error}; use cull_gmail::{Config, Error};
use config_cli::ConfigCli;
use label_cli::LabelCli; use label_cli::LabelCli;
use message_cli::MessageCli; use message_cli::MessageCli;
use rules_cli::RulesCli;
use std::error::Error as stdError;
use trash_cli::TrashCli; use trash_cli::TrashCli;
use std::error::Error as stdError;
#[derive(Parser, Debug)] #[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)] #[clap(author, version, about, long_about = None)]
struct Cli { struct Cli {
@@ -33,9 +34,9 @@ enum Commands {
/// Move messages to trash /// Move messages to trash
#[clap(name = "trash")] #[clap(name = "trash")]
Trash(TrashCli), Trash(TrashCli),
/// Configure end-of-life rules /// Configure rules and labels
#[clap(name = "rules")] #[clap(name = "config")]
Rules(RulesCli), Config(ConfigCli),
} }
#[tokio::main] #[tokio::main]
@@ -69,7 +70,7 @@ async fn run(args: Cli) -> Result<(), Error> {
Commands::Message(list_cli) => list_cli.run(config.credential_file()).await?, Commands::Message(list_cli) => list_cli.run(config.credential_file()).await?,
Commands::Labels(label_cli) => label_cli.run(config.credential_file()).await?, Commands::Labels(label_cli) => label_cli.run(config.credential_file()).await?,
Commands::Trash(trash_cli) => trash_cli.run(config.credential_file()).await?, Commands::Trash(trash_cli) => trash_cli.run(config.credential_file()).await?,
Commands::Rules(config_cli) => config_cli.run(config)?, Commands::Config(config_cli) => config_cli.run(config)?,
} }
} }
Ok(()) Ok(())