feat(cli): add run command to execute rules

- introduce `run` subcommand to trigger rule execution
- implement `RunCli` struct and logic for rule processing
This commit is contained in:
Jeremiah Russell
2025-10-10 07:50:16 +01:00
committed by Jeremiah Russell
parent 360c4d6433
commit a1015d9837

View File

@@ -4,6 +4,7 @@ mod config_cli;
mod delete_cli; mod delete_cli;
mod label_cli; mod label_cli;
mod message_cli; mod message_cli;
mod run_cli;
mod trash_cli; mod trash_cli;
use cull_gmail::{Config, Result}; use cull_gmail::{Config, Result};
@@ -12,6 +13,7 @@ use config_cli::ConfigCli;
use delete_cli::DeleteCli; use delete_cli::DeleteCli;
use label_cli::LabelCli; use label_cli::LabelCli;
use message_cli::MessageCli; use message_cli::MessageCli;
use run_cli::RunCli;
use trash_cli::TrashCli; use trash_cli::TrashCli;
use std::error::Error as stdError; use std::error::Error as stdError;
@@ -39,9 +41,12 @@ enum SubCmds {
/// Move messages to trash /// Move messages to trash
#[clap(name = "trash")] #[clap(name = "trash")]
Trash(TrashCli), Trash(TrashCli),
/// Move messages to trash /// Delete messages
#[clap(name = "delete")] #[clap(name = "delete")]
Delete(DeleteCli), Delete(DeleteCli),
/// Run the rules from the rules configuration
#[clap(name = "run")]
Run(RunCli),
} }
#[tokio::main] #[tokio::main]
@@ -76,6 +81,7 @@ async fn run(args: Cli) -> Result<()> {
SubCmds::Labels(label_cli) => label_cli.run(config.credential_file()).await, SubCmds::Labels(label_cli) => label_cli.run(config.credential_file()).await,
SubCmds::Trash(trash_cli) => trash_cli.run(config.credential_file()).await, SubCmds::Trash(trash_cli) => trash_cli.run(config.credential_file()).await,
SubCmds::Delete(delete_cli) => delete_cli.run(config.credential_file()).await, SubCmds::Delete(delete_cli) => delete_cli.run(config.credential_file()).await,
SubCmds::Run(run_cli) => run_cli.run(config.credential_file()).await,
} }
} }