pub mod command;
pub mod global_args;
use crate::menu::menu_loop;
use clap::Parser;
pub use command::*;
pub use global_args::GlobalArgs;
#[derive(Parser, Debug)]
#[command(name = "cloud_terrastodon", about, long_about = None)]
pub struct Cli {
#[command(flatten)]
pub global_args: GlobalArgs,
#[command(subcommand)]
pub command: Option<CloudTerrastodonCommand>,
}
impl Cli {
pub async fn invoke(self) -> eyre::Result<()> {
match self.command {
Some(cmd) => cmd.invoke().await,
None => {
menu_loop().await?;
Ok(())
}
}
}
}