mod cmd;
use clap::Parser;
#[derive(Debug, Parser)]
pub struct AppOpts {
#[command(subcommand)]
pub subcommand: cmd::Subcommand,
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let opts = AppOpts::parse();
match opts.subcommand {
cmd::Subcommand::Delete(cmd::delete::Opts { subcommand }) => cmd::delete::run(subcommand).await,
cmd::Subcommand::Generate(cmd::generate::Opts { subcommand }) => cmd::generate::run(subcommand).await,
cmd::Subcommand::Init(cmd::init::Opts { name }) => cmd::init::run(None, name).await,
cmd::Subcommand::New(cmd::new::Opts { app_name }) => cmd::new::run(app_name).await,
cmd::Subcommand::Serve(cmd::serve::Opts { port, open }) => cmd::serve::run(port, open).await,
}
}