mirror of
https://github.com/clap-rs/clap
synced 2024-12-13 22:32:33 +00:00
272f840178
This is a part of #2717 Some settings didn't get getters because - They are transient parse settings (e.g. ignore errors) - They get propagated to args and should be checked there `is_allow_hyphen_values_set` is a curious case. In some cases, we only check the app and not an arg. This seems suspicious.
23 lines
751 B
Rust
23 lines
751 B
Rust
// Note: this requires the `cargo` feature
|
|
|
|
fn main() {
|
|
let app = clap::App::new("cargo")
|
|
.bin_name("cargo")
|
|
.subcommand_required(true)
|
|
.subcommand(
|
|
clap::app_from_crate!().name("example").arg(
|
|
clap::arg!(--"manifest-path" <PATH>)
|
|
.required(false)
|
|
.allow_invalid_utf8(true),
|
|
),
|
|
);
|
|
let matches = app.get_matches();
|
|
let matches = match matches.subcommand() {
|
|
Some(("example", matches)) => matches,
|
|
_ => unreachable!("clap should ensure we don't get here"),
|
|
};
|
|
let manifest_path = matches
|
|
.value_of_os("manifest-path")
|
|
.map(std::path::PathBuf::from);
|
|
println!("{:?}", manifest_path);
|
|
}
|