- rename Config struct to Rules to better reflect its purpose - update all references to Config to Rules
35 lines
762 B
Rust
35 lines
762 B
Rust
use clap::{Parser, Subcommand};
|
|
|
|
mod config_cli;
|
|
mod run_cli;
|
|
|
|
use cull_gmail::{Rules, GmailClient, Result};
|
|
|
|
use config_cli::ConfigCli;
|
|
use run_cli::RunCli;
|
|
|
|
#[derive(Subcommand, Debug)]
|
|
enum SubCmds {
|
|
/// Configure end-of-life rules
|
|
#[clap(name = "config")]
|
|
Config(ConfigCli),
|
|
/// Run end-of-life rules
|
|
#[clap(name = "run")]
|
|
Run(RunCli),
|
|
}
|
|
|
|
#[derive(Debug, Parser)]
|
|
pub struct RulesCli {
|
|
#[command(subcommand)]
|
|
sub_command: SubCmds,
|
|
}
|
|
|
|
impl RulesCli {
|
|
pub async fn run(&self, client: &mut GmailClient, config: Rules) -> Result<()> {
|
|
match &self.sub_command {
|
|
SubCmds::Config(config_cli) => config_cli.run(config),
|
|
SubCmds::Run(run_cli) => run_cli.run(client, config).await,
|
|
}
|
|
}
|
|
}
|