♻️ refactor(cli): move config_cli to cli directory

- moves the config_cli module to the cli directory for better organization
This commit is contained in:
Jeremiah Russell
2025-10-09 14:38:43 +01:00
committed by Jeremiah Russell
parent 0e4f4c6fef
commit de91753f88

41
src/cli/config_cli.rs Normal file
View File

@@ -0,0 +1,41 @@
use clap::{Parser, Subcommand};
mod action_cli;
mod label_cli;
mod rules_cli;
use action_cli::ActionCli;
use cull_gmail::{Config, Result};
use label_cli::LabelCli;
use rules_cli::RulesCli;
#[derive(Subcommand, Debug)]
enum SubCmds {
/// Configure end-of-life rules
#[clap(name = "rules")]
Rules(RulesCli),
/// Add or remove Label from rule
#[clap(name = "label")]
Label(LabelCli),
/// Set action on a specific rule
#[clap(name = "action")]
Action(ActionCli),
}
#[derive(Parser, Debug)]
pub struct ConfigCli {
#[clap(flatten)]
logging: clap_verbosity_flag::Verbosity,
#[command(subcommand)]
sub_command: SubCmds,
}
impl ConfigCli {
pub fn run(&self, config: Config) -> Result<()> {
match &self.sub_command {
SubCmds::Rules(rules_cli) => rules_cli.run(config),
SubCmds::Label(label_cli) => label_cli.run(config),
SubCmds::Action(action_cli) => action_cli.run(config),
}
}
}