aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorA Farzat <a@farzat.xyz>2025-11-21 19:53:35 +0300
committerA Farzat <a@farzat.xyz>2025-11-21 19:53:35 +0300
commitdb713f8e215b2c349e4eaf0fa4791b876125148b (patch)
tree9244a2056cf7cdaa7e65315286dd7954a9cf1c8a /src/main.rs
parent78921f658502442fa72818e829fbd81c2e39e099 (diff)
downloadsimple-rss-podcast-downloader-db713f8e215b2c349e4eaf0fa4791b876125148b.tar.gz
simple-rss-podcast-downloader-db713f8e215b2c349e4eaf0fa4791b876125148b.zip
Use clap for argument parsing
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs
index 7e28a52..a2ac775 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,15 +1,26 @@
+use clap::Parser;
use simple_rss_podcast_downloader::*;
+#[derive(Parser, Debug)]
+#[command(author, version, about)]
+struct Cli {
+ feed_url: String,
+ #[arg(default_value = ".")]
+ output_dir: String,
+ #[arg(short, long)]
+ numbered: bool,
+}
+
fn main() -> Result<(), Box<dyn std::error::Error>> {
- let (feed_url, output_dir) = parse_args();
+ let args = Cli::parse();
- println!("Feed RSS feed from: {}", feed_url);
+ println!("Feed RSS feed from: {}", args.feed_url);
- let xml = fetch_feed(&feed_url)?;
+ let xml = fetch_feed(&args.feed_url)?;
let channel = parse_feed(&xml)?;
for url in get_audio_urls(&channel) {
println!("Downloading file: {}", url);
- download_file(url, &output_dir)?;
+ download_file(url, &args.output_dir)?;
}
Ok(())