mirror of
https://github.com/clap-rs/clap
synced 2024-12-14 14:52:33 +00:00
7a59dc3da4
This reverts commit 6898fbde33
.
PR #2144 added the `license` field but no consumer has been added since
the (like Issue #1768). Since this is not ready yet, I am pulling it
from the 3.0 release.
So far, our main route for pulling a feature from the release has
been to put it behind a `unstable-*` feature flag and to create a
stablization tracking issue. I chose to instead remove the feature
because a write-only field with no effect does not provide values for
people to use in as an early access and so doesn't outweight the cost of
the extra documentation noise and code noise it creates. Additionally,
keeping an `unstable-` feature around when it has such an unknown path
(and time table) to stalbization feels like it violates YAGNI. I'm
uncertain how much of this feature we can implement and not create a
legal trap for users because the crate's license is insufficient for the
final artifact's license. I feel our stabliazation process sshould be
about iteration and collecting user feedback which this doesn't line up
with.
When someone is ready to tackle #1768, it will be easy to revert this
commit and pick up the work again.
Fixes #3001
39 lines
1.2 KiB
Rust
39 lines
1.2 KiB
Rust
use clap::{App, Arg};
|
|
|
|
fn main() {
|
|
let matches = App::new("MyApp")
|
|
.subcommand(
|
|
App::new("ls")
|
|
.aliases(&["list", "dir"])
|
|
.about("Adds files to myapp")
|
|
.version("0.1")
|
|
.author("Kevin K.")
|
|
.arg(
|
|
Arg::new("input")
|
|
.about("the file to add")
|
|
.index(1)
|
|
.required(true),
|
|
),
|
|
)
|
|
.get_matches();
|
|
|
|
// You can check if a subcommand was used like normal
|
|
if matches.is_present("add") {
|
|
println!("'myapp add' was run.");
|
|
}
|
|
|
|
// You can get the independent subcommand matches (which function exactly like App matches)
|
|
if let Some(matches) = matches.subcommand_matches("add") {
|
|
// Safe to use unwrap() because of the required() option
|
|
println!("Adding file: {}", matches.value_of("input").unwrap());
|
|
}
|
|
|
|
// You can also match on a subcommand's name
|
|
match matches.subcommand_name() {
|
|
Some("add") => println!("'myapp add' was used"),
|
|
None => println!("No subcommand was used"),
|
|
_ => println!("Some other subcommand was used"),
|
|
}
|
|
|
|
// Continued program logic goes here...
|
|
}
|