From dbd9fa39603fb4eb4fce87ac945be0871dc2b368 Mon Sep 17 00:00:00 2001 From: yggverse Date: Wed, 12 Feb 2025 19:26:27 +0200 Subject: [PATCH] add custom index filename support --- README.md | 6 +++--- src/argument.rs | 6 +++--- src/main.rs | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 0b43b2b..d63680e 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ cargo install pulsarss ## Launch ``` bash -pulsarss --source https://path/to/feed.rss --index +pulsarss --source https://path/to/feed.rss ``` ### Options @@ -28,7 +28,7 @@ pulsarss --source https://path/to/feed.rss --index * `source`, `s` - RSS feed source (required) * `target`, `t` - Destination directory (`public` by default) * `update`, `u` - Update timeout in seconds (`60` by default) -* `index`, `i` - Generate `index.gmi` files (`false` by default) +* `index`, `i` - Generate index files (`index.gmi` by default, empty to disable) * `limit`, `l` - Limit channel items (unlimited by default) * `output`, `o` - Print output (`dw` by default): * `d` - debug @@ -49,7 +49,7 @@ After=network.target Type=simple User=pulsarss Group=pulsarss -ExecStart=pulsarss -is https://path/to/feed.rss +ExecStart=pulsarss -s https://path/to/feed.rss [Install] WantedBy=multi-user.target diff --git a/src/argument.rs b/src/argument.rs index 751ff93..e108270 100644 --- a/src/argument.rs +++ b/src/argument.rs @@ -3,9 +3,9 @@ use clap::Parser; #[derive(Parser, Debug)] #[command(version, about, long_about = None)] pub struct Argument { - /// Generate `index.gmi` files (`false` by default) - #[arg(short, long, default_value_t = false)] - pub index: bool, + /// Generate index files (`index.gmi` by default, empty to disable) + #[arg(short, long, default_value_t = String::from("index.gmi"))] + pub index: String, /// Limit channel items (unlimited by default) #[arg(short, long, default_value_t = 0)] diff --git a/src/main.rs b/src/main.rs index 893f05d..fea627a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -94,14 +94,14 @@ fn crawl(argument: &Argument, output: &Output) -> Result<(), Box> { File::create(destination.item())?.write_all(data.join("\n\n").as_bytes())?; - if argument.index { - index.insert(destination.path); // request `index.gmi` update + if !argument.index.is_empty() { + index.insert(destination.path); // request index file update } } - // renew pending `index.gmi` files on items crawl completed + // renew pending index files on items crawl completed for path in index { - let subject = format!("{path}index.gmi"); + let subject = format!("{path}{}", argument.index); let mut index = File::create(&subject)?; let mut data = Vec::with_capacity(argument.limit); @@ -110,7 +110,7 @@ fn crawl(argument: &Argument, output: &Output) -> Result<(), Box> { for file in read_dir(&path)? { let name = file?.file_name().into_string().unwrap(); - if name == "index.gmi" { + if name == argument.index { continue; }