auric 0.1.4

CLI for the Ember-inspired Auric 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, auric_workspace }) => {
            cmd::init::run(None, name, auric_workspace).await
        }
        cmd::Subcommand::New(cmd::new::Opts {
            app_name,
            auric_workspace,
        }) => cmd::new::run(app_name, auric_workspace).await,
        cmd::Subcommand::Serve(cmd::serve::Opts { port, open }) => cmd::serve::run(port, open).await,
    }
}