aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHristo Venev <hristo@venev.name>2019-03-19 10:30:17 +0200
committerHristo Venev <hristo@venev.name>2019-03-19 10:30:53 +0200
commit7eef7ad915a608f5cad510d079b9240ed11698f1 (patch)
tree4e65dd2a2210bfc893d3fb71252c8b574989f68f /src
parente143b186a3eba9c03af20156ad3a2e729c638dc9 (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.rs1
-rw-r--r--src/main.rs16
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() {