♻️ refactor(cli): restructure cli commands and config handling

- rename config cli to rules cli for better clarity
- move config loading to rules cli for better modularity
- update command matching to use the new rules cli
This commit is contained in:
Jeremiah Russell
2025-10-08 06:16:56 +01:00
committed by Jeremiah Russell
parent 90383226aa
commit bebf00acb4

View File

@@ -1,14 +1,14 @@
use clap::{Parser, Subcommand};
mod config_cli;
mod label_cli;
mod message_cli;
mod rules_cli;
mod trash_cli;
use config_cli::ConfigCli;
use cull_gmail::{Config, Error};
use label_cli::LabelCli;
use message_cli::MessageCli;
use rules_cli::RulesCli;
use std::error::Error as stdError;
use trash_cli::TrashCli;
@@ -34,8 +34,8 @@ enum Commands {
#[clap(name = "trash")]
Trash(TrashCli),
/// Configure end-of-life rules
#[clap(name = "config")]
Config(ConfigCli),
#[clap(name = "rules")]
Rules(RulesCli),
}
#[tokio::main]
@@ -66,9 +66,9 @@ async fn run(args: Cli) -> Result<(), Error> {
if let Some(cmds) = args.command {
match cmds {
Commands::Message(list_cli) => list_cli.run(config.credential_file()).await?,
Commands::Labels(label_cli) => label_cli.run("credential.json").await?,
Commands::Trash(trash_cli) => trash_cli.run("credential.json").await?,
Commands::Config(config_cli) => config_cli.run(),
Commands::Labels(label_cli) => label_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),
}
}
Ok(())