diff options
| author | A Farzat <a@farzat.xyz> | 2025-11-21 19:53:35 +0300 |
|---|---|---|
| committer | A Farzat <a@farzat.xyz> | 2025-11-21 19:53:35 +0300 |
| commit | db713f8e215b2c349e4eaf0fa4791b876125148b (patch) | |
| tree | 9244a2056cf7cdaa7e65315286dd7954a9cf1c8a /src/main.rs | |
| parent | 78921f658502442fa72818e829fbd81c2e39e099 (diff) | |
| download | simple-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.rs | 19 |
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(()) |
