use clap::Subcommand;
use miette::Result;
use adnv::Config;
mod check;
mod error;
mod outdated;
mod run;
mod update;
#[derive(Debug, Subcommand)]
pub enum Command {
Run(run::Command),
Outdated(outdated::Command),
Update(update::Command),
Check(check::Command),
}
impl Command {
pub async fn run(self, config: Option<&Config>) -> Result<()> {
match self {
Command::Run(subcommand) => subcommand.run(config).await,
Command::Outdated(subcommand) => subcommand.run().await,
Command::Update(subcommand) => subcommand.run().await,
Command::Check(subcommand) => subcommand.run(config).await,
}
}
}