diff options
author | Hristo Venev <hristo@venev.name> | 2019-03-19 10:30:17 +0200 |
---|---|---|
committer | Hristo Venev <hristo@venev.name> | 2019-03-19 10:30:53 +0200 |
commit | 7eef7ad915a608f5cad510d079b9240ed11698f1 (patch) | |
tree | 4e65dd2a2210bfc893d3fb71252c8b574989f68f /src | |
parent | e143b186a3eba9c03af20156ad3a2e729c638dc9 (diff) |
BREAKING CHANGE: The config file is now in toml.
The "sources" field is now [[source]].
Diffstat (limited to 'src')
-rw-r--r-- | src/config.rs | 1 | ||||
-rw-r--r-- | src/main.rs | 16 |
2 files changed, 12 insertions, 5 deletions
diff --git a/src/config.rs b/src/config.rs index 00874c2..cd874da 100644 --- a/src/config.rs +++ b/src/config.rs @@ -40,6 +40,7 @@ pub struct Config { #[serde(flatten)] pub update_config: UpdateConfig, + #[serde(rename = "source")] pub sources: Vec<Source>, } diff --git a/src/main.rs b/src/main.rs index f5ebb26..d556064 100644 --- a/src/main.rs +++ b/src/main.rs @@ -204,13 +204,19 @@ fn fetch_source(url: &str) -> io::Result<proto::Source> { } fn load_config(path: &str) -> io::Result<config::Config> { - use serde_json; + use toml; use std::fs; - let config_file = fs::File::open(path)?; - let rd = io::BufReader::new(config_file); - let mut de = serde_json::Deserializer::from_reader(rd); - Ok(serde::Deserialize::deserialize(&mut de)?) + let mut data = String::new(); + { + use io::Read; + let mut config_file = fs::File::open(path)?; + config_file.read_to_string(&mut data)?; + } + let mut de = toml::Deserializer::new(&data); + serde::Deserialize::deserialize(&mut de).map_err(|e| { + io::Error::new(io::ErrorKind::InvalidData, e) + }) } fn main() { |