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 } }