diff options
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() { |