Rust Clap 自定义标题
Rust Clap custom headings
我正在使用 rust Clap 库来解析命令行参数。在显示我的帮助文本时,我想将必需参数与可选参数分开,并将它们放在不同的标题下。类似这样的事情:
HELP:
Example header 1:
Arg 1
Arg 2
Example header 2:
Arg 3
Arg 4
这可能吗
阅读后 this, this and this 我认为可能是,但我不确定如何去做。
编辑:
因此,一位评论员要求我用一些所需的输出更新 post,因此下面是来自上述链接之一的示例。我希望能够有两个选项部分并命名它们。
$ myprog --help
My Super Program 1.0
Kevin K. <kbknapp@gmail.com>
Does awesome things
USAGE:
MyApp [FLAGS] [OPTIONS] <INPUT> [SUBCOMMAND]
FLAGS:
-h, --help Prints this message
-v Sets the level of verbosity
-V, --version Prints version information
OPTIONS:
-c, --config <FILE> Sets a custom config file
ARGS:
INPUT The input file to use
SUBCOMMANDS:
help Prints this message
test Controls testing features
因此将上面的 OPTIONS
部分更改为:
OPTIONS-1:
-c, --config <FILE> Sets a custom config file.
OPTIONS-2:
-a, --another <FILE> Another example command.
我想您可能正在寻找 help_heading
。这似乎是最近添加的,所以你必须获取最新的提交。
cargo.toml
[dependencies]
clap = { git = "https://github.com/clap-rs/clap", rev = "8145717" }
main.rs
use clap::Clap;
#[derive(Clap, Debug)]
#[clap(
name = "My Application",
version = "1.0",
author = "Jason M.",
about = "Stack Overflow"
)]
struct Opts {
#[clap(
help_heading = Some("OPTIONS-1"),
short,
long,
value_name="FILE",
about = "Sets a custom config file"
)]
config: String,
#[clap(
help_heading = Some("OPTIONS-2"),
short,
long,
value_name="FILE",
about = "Another example command"
)]
another: String,
}
fn main() {
let opts: Opts = Opts::parse();
}
use clap::{App, Arg};
fn main() {
let app = App::new("My Application")
.version("1.0")
.author("Jason M.")
.about("Stack Overflow")
.help_heading("OPTIONS-1")
.arg(
Arg::new("config")
.short('c')
.long("config")
.value_name("FILE")
.about("Sets a custom config file"),
)
.help_heading("OPTIONS-2")
.arg(
Arg::new("another")
.short('a')
.long("another")
.value_name("FILE")
.about("Another example command"),
);
app.get_matches();
}
以上任何一个都会在 运行 cargo run -- --help
时生成以下内容:
My Application 1.0
Jason M.
Stack Overflow
USAGE:
clap_headings --config <FILE> --another <FILE>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS-1:
-c, --config <FILE> Sets a custom config file
OPTIONS-2:
-a, --another <FILE> Another example command
我正在使用 rust Clap 库来解析命令行参数。在显示我的帮助文本时,我想将必需参数与可选参数分开,并将它们放在不同的标题下。类似这样的事情:
HELP:
Example header 1:
Arg 1
Arg 2
Example header 2:
Arg 3
Arg 4
这可能吗
阅读后 this, this and this 我认为可能是,但我不确定如何去做。
编辑:
因此,一位评论员要求我用一些所需的输出更新 post,因此下面是来自上述链接之一的示例。我希望能够有两个选项部分并命名它们。
$ myprog --help
My Super Program 1.0
Kevin K. <kbknapp@gmail.com>
Does awesome things
USAGE:
MyApp [FLAGS] [OPTIONS] <INPUT> [SUBCOMMAND]
FLAGS:
-h, --help Prints this message
-v Sets the level of verbosity
-V, --version Prints version information
OPTIONS:
-c, --config <FILE> Sets a custom config file
ARGS:
INPUT The input file to use
SUBCOMMANDS:
help Prints this message
test Controls testing features
因此将上面的 OPTIONS
部分更改为:
OPTIONS-1:
-c, --config <FILE> Sets a custom config file.
OPTIONS-2:
-a, --another <FILE> Another example command.
我想您可能正在寻找 help_heading
。这似乎是最近添加的,所以你必须获取最新的提交。
cargo.toml
[dependencies]
clap = { git = "https://github.com/clap-rs/clap", rev = "8145717" }
main.rs
use clap::Clap;
#[derive(Clap, Debug)]
#[clap(
name = "My Application",
version = "1.0",
author = "Jason M.",
about = "Stack Overflow"
)]
struct Opts {
#[clap(
help_heading = Some("OPTIONS-1"),
short,
long,
value_name="FILE",
about = "Sets a custom config file"
)]
config: String,
#[clap(
help_heading = Some("OPTIONS-2"),
short,
long,
value_name="FILE",
about = "Another example command"
)]
another: String,
}
fn main() {
let opts: Opts = Opts::parse();
}
use clap::{App, Arg};
fn main() {
let app = App::new("My Application")
.version("1.0")
.author("Jason M.")
.about("Stack Overflow")
.help_heading("OPTIONS-1")
.arg(
Arg::new("config")
.short('c')
.long("config")
.value_name("FILE")
.about("Sets a custom config file"),
)
.help_heading("OPTIONS-2")
.arg(
Arg::new("another")
.short('a')
.long("another")
.value_name("FILE")
.about("Another example command"),
);
app.get_matches();
}
以上任何一个都会在 运行 cargo run -- --help
时生成以下内容:
My Application 1.0
Jason M.
Stack Overflow
USAGE:
clap_headings --config <FILE> --another <FILE>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS-1:
-c, --config <FILE> Sets a custom config file
OPTIONS-2:
-a, --another <FILE> Another example command