pub mod restore;
pub mod rule;
pub mod tier;
use clap::{Args, Subcommand};
use crate::exit_code::ExitCode;
use crate::output::OutputConfig;
#[derive(Args, Debug)]
pub struct IlmArgs {
#[command(subcommand)]
pub command: IlmCommands,
}
#[derive(Subcommand, Debug)]
pub enum IlmCommands {
#[command(subcommand)]
Rule(rule::RuleCommands),
#[command(subcommand)]
Tier(tier::TierCommands),
Restore(restore::RestoreArgs),
}
pub async fn execute(args: IlmArgs, output_config: OutputConfig) -> ExitCode {
match args.command {
IlmCommands::Rule(cmd) => rule::execute(cmd, output_config).await,
IlmCommands::Tier(cmd) => tier::execute(cmd, output_config).await,
IlmCommands::Restore(args) => restore::execute(args, output_config).await,
}
}