xtask/
main.rs

1use anyhow::Result;
2use clap::{Parser, Subcommand};
3use npm::NpmCmd;
4
5use crate::{bench::BenchCmd, clean::CleanCmd, es::EsCmd, git::GitCmd};
6
7mod bench;
8mod clean;
9mod es;
10mod git;
11mod npm;
12mod util;
13
14#[derive(Debug, Parser)]
15struct CliArgs {
16    #[clap(subcommand)]
17    cmd: Cmd,
18}
19
20#[derive(Debug, Subcommand)]
21enum Cmd {
22    Es(EsCmd),
23    Bench(BenchCmd),
24    Git(GitCmd),
25    Npm(NpmCmd),
26    Clean(CleanCmd),
27}
28
29fn main() -> Result<()> {
30    let args = CliArgs::parse();
31
32    match args.cmd {
33        Cmd::Es(c) => c.run(),
34        Cmd::Bench(c) => c.run(),
35        Cmd::Git(c) => c.run(),
36        Cmd::Npm(c) => c.run(),
37        Cmd::Clean(c) => c.run(),
38    }
39}