use anyhow::Result;
use clap::{Parser, Subcommand};
mod build;
mod init;
mod serve;
mod shared;
#[derive(Parser)]
#[clap(about, author, version)]
pub struct Cli {
#[command(subcommand)]
pub command: Cmd,
}
#[derive(Subcommand)]
pub enum Cmd {
#[command(subcommand)]
Init(init::InitCmd),
Build(build::BuildCmd),
Serve(serve::WebserverCmd),
}
impl Cli {
pub fn handle() -> Result<()> {
let cli = Cli::parse();
match cli.command {
Cmd::Init(cmd) => init::handle(cmd),
Cmd::Build(cmd) => build::handle(cmd),
Cmd::Serve(cmd) => serve::handle(cmd),
}
}
}