aboutsummaryrefslogtreecommitdiff
path: root/src/cli.rs
blob: d7f5cff94d93d3fae25911eff9c5545bf0766572 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use structopt::clap::{App, AppSettings, Arg, SubCommand};

pub fn cli<'b, 'a>() -> App<'a, 'b> {
  App::new(env!("CARGO_PKG_NAME"))
    .about(env!("CARGO_PKG_DESCRIPTION"))
    .version(env!("CARGO_PKG_VERSION"))
    .author(env!("CARGO_PKG_AUTHORS"))
    .settings(&[AppSettings::SubcommandRequiredElseHelp])
    .subcommands(vec![
      SubCommand::with_name("run").about("Start the WorldServer"),
      SubCommand::with_name("config")
        .setting(AppSettings::SubcommandRequiredElseHelp)
        .subcommands(vec![SubCommand::with_name("show")]),
      SubCommand::with_name("completions")
        .setting(AppSettings::SubcommandRequiredElseHelp)
        .about("Generate shell completions")
        .subcommands(vec![
          SubCommand::with_name("powershell"),
          SubCommand::with_name("bash"),
          SubCommand::with_name("elvish"),
          SubCommand::with_name("zsh"),
          SubCommand::with_name("fish"),
        ]),
    ])
    .args(&[
      Arg::with_name("debug").short("d").long("debug"),
      Arg::with_name("trace").short("t").long("trace"),
    ])
}