Fix canonicalize

This commit is contained in:
Andras Schmelczer 2024-12-08 17:15:58 +00:00
parent fe131e7103
commit 464a5e1010
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
2 changed files with 11 additions and 5 deletions

View file

@ -9,9 +9,9 @@ pub struct AppState {
impl AppState {
pub async fn try_new() -> Result<Self> {
let path = std::path::Path::new(CONFIG_PATH).canonicalize()?;
let path = std::path::Path::new(CONFIG_PATH);
let config = Config::read(&path).await?;
let config = Config::read_or_create(path).await?;
let database = Database::try_new(&config.database).await?;
Ok(Self { config, database })

View file

@ -23,14 +23,20 @@ pub struct Config {
}
impl Config {
pub async fn read(path: &Path) -> Result<Self> {
pub async fn read_or_create(path: &Path) -> Result<Self> {
if path.exists() {
info!("Loading configuration from {path:?}");
info!(
"Loading configuration from {:?}",
path.canonicalize().unwrap()
);
Self::load_from_file(path).await
} else {
warn!("Configuration file not found, writing default configuration to {path:?}");
let config = Config::default();
config.write(path).await?;
warn!(
"Configuration file not found, wrote default configuration to {:?}",
path.canonicalize().unwrap()
);
Ok(config)
}
}