auric 0.1.1

CLI for the `auric` MVC SPA framework
mod cmd;

use clap::Parser;

//-----------------------------------------------------------------------------
// Commands
//-----------------------------------------------------------------------------
#[derive(Debug, Parser)]
pub struct AppOpts {
    #[command(subcommand)]
    pub subcommand: cmd::Subcommand,
}

//-----------------------------------------------------------------------------
// main
//-----------------------------------------------------------------------------
#[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,
    }
}