1mod asset;
2mod cargo;
3mod dev;
4mod fmt;
5mod ui;
6
7use clap::{Parser, Subcommand};
8
9#[derive(Parser)]
10#[command(name = "topcoat")]
11pub struct TopcoatCli {
12 #[command(subcommand)]
13 command: Command,
14}
15
16#[derive(Subcommand)]
17enum Command {
18 Dev(dev::DevCommand),
20 Fmt(fmt::FmtCommand),
22 Asset(asset::AssetCommand),
24 Ui(ui::UiCommand),
26}
27
28pub async fn run() {
29 let cli = TopcoatCli::parse();
30 match cli.command {
31 Command::Ui(cmd) => cmd.run(),
32 Command::Fmt(cmd) => cmd.run().await,
33 Command::Dev(cmd) => cmd.run().await,
34 Command::Asset(cmd) => cmd.run().await,
35 }
36}