Fix error if no config file exists
This commit is contained in:
parent
3458f38c96
commit
e2693242e5
1 changed files with 13 additions and 3 deletions
|
|
@ -1,6 +1,8 @@
|
||||||
//! Configuration from a file.
|
//! Configuration from a file.
|
||||||
|
|
||||||
use std::{collections::HashMap, fs, net::SocketAddr, path::PathBuf, time::Duration};
|
use std::{
|
||||||
|
collections::HashMap, fs, io::ErrorKind, net::SocketAddr, path::PathBuf, time::Duration,
|
||||||
|
};
|
||||||
|
|
||||||
use directories::ProjectDirs;
|
use directories::ProjectDirs;
|
||||||
use log::{info, trace};
|
use log::{info, trace};
|
||||||
|
|
@ -259,11 +261,19 @@ impl Config {
|
||||||
let path = Self::path(args);
|
let path = Self::path(args);
|
||||||
info!("Loading config from {}", path.display());
|
info!("Loading config from {}", path.display());
|
||||||
|
|
||||||
let raw = fs::read_to_string(path)?;
|
let raw = match fs::read_to_string(path) {
|
||||||
let raw = toml::from_str::<RawConfig>(&raw)?;
|
Ok(str) => toml::from_str::<RawConfig>(&str)?,
|
||||||
|
Err(e) if e.kind() == ErrorKind::NotFound => {
|
||||||
|
info!("No config file found, using default config");
|
||||||
|
RawConfig::default()
|
||||||
|
}
|
||||||
|
Err(e) => Err(e)?,
|
||||||
|
};
|
||||||
trace!("Raw config: {raw:#?}");
|
trace!("Raw config: {raw:#?}");
|
||||||
|
|
||||||
let config = Self::from_raw_config(raw, args);
|
let config = Self::from_raw_config(raw, args);
|
||||||
trace!("Config: {config:#?}");
|
trace!("Config: {config:#?}");
|
||||||
|
|
||||||
Ok(config)
|
Ok(config)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue