bit more logging

This commit is contained in:
Robin Appelman 2024-08-03 22:32:10 +02:00
commit 8ace94b418
2 changed files with 17 additions and 6 deletions

View file

@ -40,6 +40,12 @@ in {
}); });
}; };
log = mkOption {
type = types.str;
default = "INFO";
description = "Log level";
};
package = mkOption { package = mkOption {
type = types.package; type = types.package;
description = "package to use"; description = "package to use";
@ -50,6 +56,10 @@ in {
systemd.services."rss-webhook-trigger" = { systemd.services."rss-webhook-trigger" = {
wantedBy = ["multi-user.target"]; wantedBy = ["multi-user.target"];
environment = {
RUST_LOG = cfg.log;
};
serviceConfig = { serviceConfig = {
ExecStart = "${cfg.package}/bin/rss-webhook-trigger ${configFile}"; ExecStart = "${cfg.package}/bin/rss-webhook-trigger ${configFile}";
Restart = "on-failure"; Restart = "on-failure";

View file

@ -40,7 +40,7 @@ async fn main() -> Result<()> {
select! { select! {
_ = ctrl_c => {}, _ = ctrl_c => {},
_ = main_loop(config) => {} _ = main_loop(config) => {}
}; }
Ok(()) Ok(())
} }
@ -49,11 +49,11 @@ async fn main_loop(config: Config) {
loop { loop {
for feed in config.feed.iter() { for feed in config.feed.iter() {
match fetcher.is_feed_updated(&feed.feed).await { match fetcher.check_feed_updated(&feed.feed).await {
Ok(true) => { Ok(true) => {
trigger(&fetcher.client, feed).await; trigger(&fetcher.client, feed).await;
} }
Err(e) => eprintln!("{:#}", e), Err(e) => error!(error = ?e, feed = feed.feed, "failed to check feed"),
Ok(false) => {} Ok(false) => {}
} }
} }
@ -86,11 +86,12 @@ pub struct FeedFetcher {
impl FeedFetcher { impl FeedFetcher {
#[instrument(skip(self))] #[instrument(skip(self))]
pub async fn is_feed_updated(&mut self, feed: &str) -> Result<bool> { pub async fn check_feed_updated(&mut self, feed: &str) -> Result<bool> {
let new_key = self.get_feed_key(feed).await?; let new_key = self.get_feed_key(feed).await?;
Ok(match self.cache.get_mut(feed) { Ok(match self.cache.get_mut(feed) {
Some(cached) => { Some(cached) => {
debug!(cached, new_key, "checked existing feed");
if *cached != new_key { if *cached != new_key {
*cached = new_key; *cached = new_key;
true true
@ -99,10 +100,10 @@ impl FeedFetcher {
} }
} }
None => { None => {
debug!(feed, "new feed");
self.cache.insert(feed.into(), new_key); self.cache.insert(feed.into(), new_key);
// dont trigger the actions on start // don't trigger the actions on start
false false
} }
}) })