diff options
| author | Nathan Jaremko | 2019-02-24 16:52:01 -0500 |
|---|---|---|
| committer | Nathan Jaremko | 2019-02-24 17:53:19 -0500 |
| commit | 22e617eec8e2d8da36788ae40fb53c2ed2ebe734 (patch) | |
| tree | 99ecbf8a7df65c9748b73debf9ece08ad9858315 /src/parser.rs | |
| parent | e54af75fa1fe7f5e9da3bd858058ab491efea77a (diff) | |
| download | podcast-0.8.0.tar.bz2 | |
Improve code0.8.0
Diffstat (limited to 'src/parser.rs')
| -rw-r--r-- | src/parser.rs | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/src/parser.rs b/src/parser.rs new file mode 100644 index 0000000..ce5ca93 --- /dev/null +++ b/src/parser.rs @@ -0,0 +1,137 @@ +use clap::{App, Arg, ArgMatches, SubCommand}; + +pub fn get_matches<'a>(version: &str) -> ArgMatches<'a> { + App::new("podcast") + .version(version) + .author("Nathan J. <njaremko@gmail.com>") + .about("A command line podcast manager") + .subcommand( + SubCommand::with_name("download") + .about("download episodes of podcast") + .arg( + Arg::with_name("PODCAST") + .help("Regex for subscribed podcast") + .required(true) + .index(1), + ) + .arg( + Arg::with_name("EPISODE") + .required(false) + .help("Episode index") + .index(2), + ) + .arg( + Arg::with_name("name") + .short("e") + .long("episode") + .help("Download using episode name instead of index number") + .required(false), + ) + .arg( + Arg::with_name("all") + .short("a") + .long("all") + .help("Download all matching episodes") + .required(false), + ), + ) + .subcommand( + SubCommand::with_name("ls") + .about("list episodes of podcast") + .arg( + Arg::with_name("PODCAST") + .help("Regex for subscribed podcast") + .index(1), + ), + ) + .subcommand( + SubCommand::with_name("list") + .about("list episodes of podcast") + .arg( + Arg::with_name("PODCAST") + .help("Regex for subscribed podcast") + .index(1), + ), + ) + .subcommand( + SubCommand::with_name("play") + .about("play an episode") + .arg( + Arg::with_name("PODCAST") + .help("Regex for subscribed podcast") + .required(true) + .index(1), + ) + .arg( + Arg::with_name("EPISODE") + .help("Episode index") + .required(false) + .index(2), + ) + .arg( + Arg::with_name("name") + .short("e") + .long("episode") + .help("Play using episode name instead of index number") + .required(false), + ), + ) + .subcommand( + SubCommand::with_name("search") + .about("searches for podcasts") + .arg( + Arg::with_name("debug") + .short("d") + .help("print debug information verbosely"), + ), + ) + .subcommand( + SubCommand::with_name("subscribe") + .about("subscribes to a podcast RSS feed") + .arg( + Arg::with_name("URL") + .help("URL to RSS feed") + .required(true) + .index(1), + ) + .arg( + Arg::with_name("download") + .short("d") + .long("download") + .help("auto download based on config"), + ), + ) + .subcommand( + SubCommand::with_name("sub") + .about("subscribes to a podcast RSS feed") + .arg( + Arg::with_name("URL") + .help("URL to RSS feed") + .required(true) + .index(1), + ) + .arg( + Arg::with_name("download") + .short("d") + .long("download") + .help("auto download based on config"), + ), + ) + .subcommand(SubCommand::with_name("refresh").about("refresh subscribed podcasts")) + .subcommand(SubCommand::with_name("update").about("check for updates")) + .subcommand( + SubCommand::with_name("rm") + .about("unsubscribe from a podcast") + .arg(Arg::with_name("PODCAST").help("Podcast to delete").index(1)), + ) + .subcommand( + SubCommand::with_name("completion") + .about("install shell completion") + .arg( + Arg::with_name("SHELL") + .help("Shell to print completion for") + .index(1), + ), + ) + .get_matches() +} |
