use anyhow::Result;
use clap::{Parser, Subcommand};
pub mod build;
pub mod bundle;
pub mod doctor;
pub mod init_lsp;
pub mod inspect;
pub mod install;
pub mod test;
#[derive(Parser, Debug)]
pub struct PackageCommand {
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand, Debug)]
enum Commands {
Build(build::BuildCommand),
Bundle(bundle::BundleCommand),
Test(build::BuildCommand),
Install(install::InstallCommand),
Doctor(doctor::DoctorCommand),
InitLsp(init_lsp::InitLspCommand),
Inspect(inspect::InspectCommand),
}
pub fn run(args: PackageCommand) -> Result<()> {
match args.command {
Commands::Build(cmd) => build::run(cmd),
Commands::Bundle(cmd) => bundle::run(cmd),
Commands::Test(cmd) => test::run(cmd),
Commands::Install(cmd) => install::run(cmd),
Commands::Doctor(cmd) => doctor::run(cmd),
Commands::InitLsp(cmd) => init_lsp::run(cmd),
Commands::Inspect(cmd) => inspect::run(cmd),
}
}