aboutsummaryrefslogtreecommitdiff
path: root/clap/examples/08_subcommands.rs
diff options
context:
space:
mode:
Diffstat (limited to 'clap/examples/08_subcommands.rs')
-rw-r--r--clap/examples/08_subcommands.rs57
1 files changed, 0 insertions, 57 deletions
diff --git a/clap/examples/08_subcommands.rs b/clap/examples/08_subcommands.rs
deleted file mode 100644
index 73bd098..0000000
--- a/clap/examples/08_subcommands.rs
+++ /dev/null
@@ -1,57 +0,0 @@
-extern crate clap;
-
-use clap::{App, Arg, SubCommand};
-
-fn main() {
-
- // SubCommands function exactly like sub-Apps, because that's exactly what they are. Each
- // instance of a SubCommand can have it's own version, author(s), Args, and even it's own
- // subcommands.
- //
- // # Help and Version
- // Just like Apps, each subcommand will get it's own "help" and "version" flags automatically
- // generated. Also, like Apps, you can override "-V" or "-h" safely and still get "--help" and
- // "--version" auto generated.
- //
- // NOTE: If you specify a subcommand for your App, clap will also autogenerate a "help"
- // subcommand along with "-h" and "--help" (applies to sub-subcommands as well).
- //
- // Just like arg() and args(), subcommands can be specified one at a time via subcommand() or
- // multiple ones at once with a Vec<SubCommand> provided to subcommands().
- let matches = App::new("MyApp")
- // Normal App and Arg configuration goes here...
-
- // In the following example assume we wanted an application which
- // supported an "add" subcommand, this "add" subcommand also took
- // one positional argument of a file to add:
- .subcommand(SubCommand::with_name("add") // The name we call argument with
- .about("Adds files to myapp") // The message displayed in "myapp -h"
- // or "myapp help"
- .version("0.1") // Subcommands can have independent version
- .author("Kevin K.") // And authors
- .arg(Arg::with_name("input") // And their own arguments
- .help("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...
-}