use crate::commands::global;
pub(crate) mod logs;
mod shared;
pub(crate) mod start;
pub(crate) mod stop;
pub type StartCmd = start::Cmd;
pub type StopCmd = stop::Cmd;
#[derive(Debug, clap::Subcommand)]
pub enum Cmd {
Logs(logs::Cmd),
Start(start::Cmd),
Stop(stop::Cmd),
}
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error(transparent)]
Logs(#[from] logs::Error),
#[error(transparent)]
Start(#[from] start::Error),
#[error(transparent)]
Stop(#[from] stop::Error),
}
impl Cmd {
pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> {
match &self {
Cmd::Logs(cmd) => cmd.run(global_args).await?,
Cmd::Start(cmd) => cmd.run(global_args).await?,
Cmd::Stop(cmd) => cmd.run(global_args).await?,
}
Ok(())
}
}