aboutsummaryrefslogtreecommitdiff
path: root/src/cli.rs
blob: 08ce080df39312d2f4f998d44b943d05cef0717f (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
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"),
		])
}