From 5270c5c73fc9e843b922f1e12b81c3c78d7e8a26 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Fri, 4 Sep 2026 18:50:53 +0100 Subject: config file from arg or default location --- src/config.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/config.rs (limited to 'src/config.rs') diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..518a82a --- /dev/null +++ b/src/config.rs @@ -0,0 +1,30 @@ +use std::{fs::File, io::{Read, read_to_string}, path::Path}; + +use serde::Deserialize; + +#[derive(Deserialize)] +pub struct Config { +} + +pub const DEFAULT_CONFIG_FILE_LOCATIONS: [&str; 1] = [ + "/etc/rss-aggregator.toml", +]; + +impl Config { + pub fn parse_config_file_at_path(path: &str) -> anyhow::Result { + let path = Path::new(path); + let file = File::open(&path)?; + let contents = read_to_string(file)?; + Ok(toml::from_str(&contents)?) + } + + pub fn find_config() -> Option { + for path in DEFAULT_CONFIG_FILE_LOCATIONS { + match Self::parse_config_file_at_path(path) { + Ok(config) => { return Some(config); }, + Err(_) => {}, + }; + }; + None + } +} -- cgit v1.2.3