diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2020-01-07 15:17:16 +0000 |
---|---|---|
committer | Daniel Mueller <deso@posteo.net> | 2020-01-08 09:21:15 -0800 |
commit | 0b673f2f0184efa0111c4978a2a4159598dee7a6 (patch) | |
tree | 4e420e4f6359d1f258ab3fd285de56ad81a13760 /argparse/examples/subcommands.rs | |
parent | 8482335491aa55b0458ffedccd1fc110f092e38a (diff) | |
download | nitrocli-0b673f2f0184efa0111c4978a2a4159598dee7a6.tar.gz nitrocli-0b673f2f0184efa0111c4978a2a4159598dee7a6.tar.bz2 |
Remove argparse dependency
As we have replaced argparse with structopt, we no longer need it as a
dependency. This patch removes the dependency from Cargo.toml and
deletes the included copy.
Delete subrepo argparse/:argparse
Diffstat (limited to 'argparse/examples/subcommands.rs')
-rw-r--r-- | argparse/examples/subcommands.rs | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/argparse/examples/subcommands.rs b/argparse/examples/subcommands.rs deleted file mode 100644 index 8fb061a..0000000 --- a/argparse/examples/subcommands.rs +++ /dev/null @@ -1,88 +0,0 @@ -use std::str::FromStr; -use std::io::{stdout, stderr}; -extern crate argparse; - -use argparse::{ArgumentParser, StoreTrue, Store, List}; - -#[allow(non_camel_case_types)] -#[derive(Debug)] -enum Command { - play, - record, -} - -impl FromStr for Command { - type Err = (); - fn from_str(src: &str) -> Result<Command, ()> { - return match src { - "play" => Ok(Command::play), - "record" => Ok(Command::record), - _ => Err(()), - }; - } -} - - - -fn play_command(verbose: bool, args: Vec<String>) { - let mut output = "".to_string(); - { - let mut ap = ArgumentParser::new(); - ap.set_description("Plays a sound"); - ap.refer(&mut output) - .add_option(&["--output"], Store, - r#"Output sink to play to"#); - match ap.parse(args, &mut stdout(), &mut stderr()) { - Ok(()) => {} - Err(x) => { - std::process::exit(x); - } - } - } - println!("Verbosity: {}, Output: {}", verbose, output); -} - -fn record_command(verbose: bool, args: Vec<String>) { - let mut input = "".to_string(); - { - let mut ap = ArgumentParser::new(); - ap.set_description("Records a sound"); - ap.refer(&mut input) - .add_option(&["--input"], Store, - r#"Output source to record from"#); - match ap.parse(args, &mut stdout(), &mut stderr()) { - Ok(()) => {} - Err(x) => { - std::process::exit(x); - } - } - } - println!("Verbosity: {}, Input: {}", verbose, input); -} - -fn main() { - let mut verbose = false; - let mut subcommand = Command::play; - let mut args = vec!(); - { - let mut ap = ArgumentParser::new(); - ap.set_description("Plays or records sound"); - ap.refer(&mut verbose) - .add_option(&["-v", "--verbose"], StoreTrue, - "Be verbose"); - ap.refer(&mut subcommand).required() - .add_argument("command", Store, - r#"Command to run (either "play" or "record")"#); - ap.refer(&mut args) - .add_argument("arguments", List, - r#"Arguments for command"#); - ap.stop_on_first_argument(true); - ap.parse_args_or_exit(); - } - - args.insert(0, format!("subcommand {:?}", subcommand)); - match subcommand { - Command::play => play_command(verbose, args), - Command::record => record_command(verbose, args), - } -} |