diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 63 |
1 files changed, 32 insertions, 31 deletions
diff --git a/src/main.rs b/src/main.rs index 37da2eb..82961dc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,7 +4,6 @@ extern crate rayon; extern crate regex; extern crate reqwest; extern crate rss; -extern crate serde; #[macro_use] extern crate serde_derive; extern crate serde_json; @@ -15,7 +14,7 @@ mod structs; mod utils; use actions::*; -use clap::{Arg, App, SubCommand}; +use clap::{App, Arg, SubCommand}; use structs::*; use utils::*; @@ -33,9 +32,9 @@ fn main() { }; let config = Config::new(); let matches = App::new("podcast") - .version("1.0") + .version("0.4") .author("Nathan J. <njaremko@gmail.com>") - .about("Does awesome things") + .about("A command line podcast manager") .subcommand( SubCommand::with_name("download") .about("download episodes of podcast") @@ -48,7 +47,7 @@ fn main() { .arg(Arg::with_name("EPISODE").help("Episode index").index(2)), ) .subcommand( - SubCommand::with_name("list") + SubCommand::with_name("ls") .about("list episodes of podcast") .arg( Arg::with_name("PODCAST") @@ -75,9 +74,11 @@ fn main() { .subcommand( SubCommand::with_name("search") .about("searches for podcasts") - .arg(Arg::with_name("debug").short("d").help( - "print debug information verbosely", - )), + .arg( + Arg::with_name("debug") + .short("d") + .help("print debug information verbosely"), + ), ) .subcommand( SubCommand::with_name("subscribe") @@ -89,9 +90,10 @@ fn main() { .index(1), ), ) - .subcommand(SubCommand::with_name("update").about( - "update subscribed podcasts", - )) + .subcommand(SubCommand::with_name("refresh").about("refresh subscribed podcasts")) + .subcommand(SubCommand::with_name("update").about("check for updates")) + .subcommand(SubCommand::with_name("rm").about("delete podcast")) + .subcommand(SubCommand::with_name("completions").about("install shell completions")) .get_matches(); match matches.subcommand_name() { @@ -99,18 +101,16 @@ fn main() { let download_matches = matches.subcommand_matches("download").unwrap(); let podcast = download_matches.value_of("PODCAST").unwrap(); match download_matches.value_of("EPISODE") { - Some(ep) => { - if String::from(ep).contains(|c| c == '-' || c == ',') { - download_range(&state, podcast, ep) - } else { - download_episode(&state, podcast, ep) - } - } + Some(ep) => if String::from(ep).contains(|c| c == '-' || c == ',') { + download_range(&state, podcast, ep) + } else { + download_episode(&state, podcast, ep) + }, None => download_all(&state, podcast), } } - Some("list") => { - let list_matches = matches.subcommand_matches("list").unwrap(); + Some("ls") => { + let list_matches = matches.subcommand_matches("ls").unwrap(); match list_matches.value_of("PODCAST") { Some(regex) => list_episodes(regex), None => list_subscriptions(&state), @@ -122,18 +122,19 @@ fn main() { let episode = play_matches.value_of("EPISODE").unwrap(); play_episode(&state, podcast, episode); } - Some("subscribe") => { - state.subscribe( - matches - .subcommand_matches("subscribe") - .unwrap() - .value_of("URL") - .unwrap(), - &config, - ) - } + Some("subscribe") => state.subscribe( + matches + .subcommand_matches("subscribe") + .unwrap() + .value_of("URL") + .unwrap(), + &config, + ), Some("search") => (), - Some("update") => update_rss(&mut state), + Some("rm") => (), + Some("completions") => (), + Some("refresh") => update_rss(&mut state), + Some("update") => check_for_update(&mut state), _ => (), } if let Err(err) = state.save() { |
