♻️ 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:
committed by
Jeremiah Russell
parent
0e4f4c6fef
commit
de91753f88
41
src/cli/config_cli.rs
Normal file
41
src/cli/config_cli.rs
Normal 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),
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user