Begin working on more graceful error handling
NOTE: This does not work currently Signed-off-by: Marko Korhonen <marko.korhonen@reekynet.com>
This commit is contained in:
parent
04e23c6144
commit
242c982565
1 changed files with 24 additions and 4 deletions
|
@ -39,15 +39,33 @@ pub fn load_xdg() -> Config {
|
||||||
"{} does not exist, writing default configuration",
|
"{} does not exist, writing default configuration",
|
||||||
path.display()
|
path.display()
|
||||||
);
|
);
|
||||||
|
|
||||||
match fs::write(&path, toml::to_string(&Config::default()).unwrap()) {
|
match fs::write(&path, toml::to_string(&Config::default()).unwrap()) {
|
||||||
Ok(()) => println!("Default config saved to {}", path.display()),
|
Ok(()) => println!("Default config saved to {}", path.display()),
|
||||||
Err(err) => eprintln!("Failed to write default config: {}", err),
|
Err(err) => eprintln!("Failed to write default config: {}", err),
|
||||||
};
|
};
|
||||||
|
|
||||||
Config::default()
|
Config::default()
|
||||||
} else {
|
} else {
|
||||||
let toml = fs::read(&path).unwrap();
|
let toml: String;
|
||||||
let config: Config = toml::from_str(&toml).unwrap();
|
|
||||||
config
|
match fs::read(&path) {
|
||||||
|
Ok(string) => toml = string,
|
||||||
|
Err(err) => {
|
||||||
|
eprintln!("Failed to read config: {}", err);
|
||||||
|
eprintln!("Using default config");
|
||||||
|
return Config::default();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
match toml::from_str<Config, _>(&toml) {
|
||||||
|
Ok(parsed_conf) = parsed_conf,
|
||||||
|
Err(err) => {
|
||||||
|
eprintln!("Failed to parse config: {}", err);
|
||||||
|
eprintln!("Using default config");
|
||||||
|
config
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +74,9 @@ pub fn load_user(path: PathBuf) -> Config {
|
||||||
panic!("{} does not exist", path.display());
|
panic!("{} does not exist", path.display());
|
||||||
} else {
|
} else {
|
||||||
let toml = fs::read(&path).unwrap();
|
let toml = fs::read(&path).unwrap();
|
||||||
let config: Config = toml::from_str(&toml).unwrap();
|
match toml::from_str(&toml) {
|
||||||
|
Ok(parsed_conf) ->
|
||||||
|
}
|
||||||
config
|
config
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue