#![deny(missing_docs)]
use clap::{Parser, Subcommand};
use resq_cli::commands;
#[derive(Parser)]
#[command(name = "resq")]
#[command(version, about = "ResQ CLI tools", long_about = None)]
pub struct Cli {
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand)]
enum Commands {
Copyright(commands::copyright::CopyrightArgs),
Lqip(commands::lqip::LqipArgs),
Audit(commands::audit::AuditArgs),
Cost(commands::cost::CostArgs),
TreeShake(commands::tree_shake::TreeShakeArgs),
Secrets(commands::secrets::SecretsArgs),
Dev(commands::dev::DevArgs),
Explore(commands::explore::ExploreArgs),
Logs(commands::explore::LogsArgs),
Health(commands::explore::HealthArgs),
Deploy(commands::explore::DeployArgs),
Clean(commands::explore::CleanArgs),
Asm(commands::explore::AsmArgs),
PreCommit(commands::pre_commit::PreCommitArgs),
Version(commands::version::VersionArgs),
Docs(commands::docs::DocsArgs),
Hooks(commands::hooks::HooksArgs),
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
tracing_subscriber::fmt::init();
let cli = Cli::parse();
match cli.command {
Commands::Copyright(args) => commands::copyright::run(&args)?,
Commands::Lqip(args) => commands::lqip::run(args).await?,
Commands::Audit(args) => commands::audit::run(args).await?,
Commands::Cost(args) => commands::cost::run(args).await?,
Commands::TreeShake(args) => commands::tree_shake::run(args).await?,
Commands::Secrets(args) => commands::secrets::run(args).await?,
Commands::Dev(args) => commands::dev::run(args)?,
Commands::Explore(args) => commands::explore::run_explore(args).await?,
Commands::Logs(args) => commands::explore::run_logs(args).await?,
Commands::Health(args) => commands::explore::run_health(args).await?,
Commands::Deploy(args) => commands::explore::run_deploy(args).await?,
Commands::Clean(args) => commands::explore::run_clean(args).await?,
Commands::Asm(args) => commands::explore::run_asm(args).await?,
Commands::PreCommit(args) => commands::pre_commit::run(args).await?,
Commands::Version(args) => commands::version::run(args)?,
Commands::Docs(args) => commands::docs::run(args)?,
Commands::Hooks(args) => commands::hooks::run(args)?,
}
Ok(())
}