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
30
31
32
33
34
35
36
37
38
39
|
use structopt::StructOpt;
use structopt::clap::{Shell, App, AppSettings, SubCommand, Arg};
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"),
])
}
|