From 7ffa8632502cfa89aa3341d31f90e68c1a25f3e2 Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Mon, 10 Dec 2018 18:25:47 +0100 Subject: Add the missing config file --- src/config.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/config.rs (limited to 'src') diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..7280aed --- /dev/null +++ b/src/config.rs @@ -0,0 +1,28 @@ +use std::fs::File; +use std::io::Read; +use dirs; +use toml; + +use errors::ConfigError; + +const CONFIG_NAME: &str = "almanac.toml"; + +#[derive(Deserialize)] +pub struct Config { + pub cals: Vec, +} + +impl Config { + pub fn parse() -> Result { + let config_path = match dirs::config_dir() { + Some(path) => path, + None => return Err(ConfigError::MissingPath), + }.join(CONFIG_NAME); + + let mut file = File::open(&config_path)?; + let mut toml_str = String::new(); + file.read_to_string(&mut toml_str)?; + + Ok(toml::from_str(&toml_str)?) + } +} -- cgit v1.2.3