mod commands;
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "vize")]
#[command(about = "High-performance Vue.js toolchain in Rust", long_about = None)]
#[command(version)]
struct Cli {
#[command(subcommand)]
command: Option<Commands>,
}
#[derive(Subcommand)]
enum Commands {
#[command(visible_alias = "atelier")]
Build(commands::build::BuildArgs),
#[command(visible_alias = "glyph")]
Fmt(commands::fmt::FmtArgs),
#[command(visible_alias = "patina")]
Lint(commands::lint::LintArgs),
Check(commands::check::CheckArgs),
Musea(commands::musea::MuseaArgs),
#[command(visible_alias = "maestro")]
Lsp(commands::lsp::LspArgs),
}
fn main() {
let cli = Cli::parse();
match cli.command {
Some(Commands::Build(args)) => commands::build::run(args),
Some(Commands::Fmt(args)) => commands::fmt::run(args),
Some(Commands::Lint(args)) => commands::lint::run(args),
Some(Commands::Check(args)) => commands::check::run(args),
Some(Commands::Musea(args)) => commands::musea::run(args),
Some(Commands::Lsp(args)) => commands::lsp::run(args),
None => {
commands::build::run(commands::build::BuildArgs::default());
}
}
}