diff options
| -rw-r--r-- | crates/turtle/src/atuin_client/settings.rs | 14 | ||||
| -rw-r--r-- | crates/turtle/src/atuin_server/settings.rs | 29 |
2 files changed, 25 insertions, 18 deletions
diff --git a/crates/turtle/src/atuin_client/settings.rs b/crates/turtle/src/atuin_client/settings.rs index e4c21d4a..98829529 100644 --- a/crates/turtle/src/atuin_client/settings.rs +++ b/crates/turtle/src/atuin_client/settings.rs @@ -1,9 +1,9 @@ use crypto_secretbox::Key; use std::{ - collections::HashMap, fmt, fs::read_to_string, io::prelude::Write, path::PathBuf, str::FromStr, - sync::OnceLock, + collections::HashMap, fmt, fs::read_to_string, path::PathBuf, str::FromStr, sync::OnceLock, }; use tokio::sync::OnceCell; +use tracing::info; use uuid::Uuid; use crate::atuin_common::utils; @@ -13,7 +13,7 @@ use config::{ Config, ConfigBuilder, Environment, File as ConfigFile, FileFormat, builder::DefaultState, }; use eyre::{Context, Error, Result, bail, eyre}; -use fs_err::{File, create_dir_all}; +use fs_err::create_dir_all; use regex::RegexSet; use serde::{Deserialize, Serialize}; use serde_with::DeserializeFromStr; @@ -1181,10 +1181,12 @@ impl Settings { // file with defaults. <2026-06-13> create_dir_all(config_file.parent().unwrap())?; - bail!( - "No config file at: `{}`. Please add one.", + info!( + "No config file at: `{}`. Not adding one.", config_file.display() - ) + ); + + config_builder }; // all paths should be expanded diff --git a/crates/turtle/src/atuin_server/settings.rs b/crates/turtle/src/atuin_server/settings.rs index ee2fbebf..73fc5e42 100644 --- a/crates/turtle/src/atuin_server/settings.rs +++ b/crates/turtle/src/atuin_server/settings.rs @@ -1,9 +1,10 @@ use std::path::PathBuf; use config::{Config, Environment, File as ConfigFile, FileFormat}; -use eyre::{Result, bail, eyre}; +use eyre::{Result, eyre}; use fs_err::create_dir_all; use serde::{Deserialize, Serialize}; +use tracing::info; use crate::atuin_server::database::DbSettings; @@ -62,7 +63,7 @@ impl Settings { config_file.push("server.toml"); // create the config file if it does not exist - let config_builder = Config::builder() + let mut config_builder = Config::builder() .set_default("host", "127.0.0.1")? .set_default("port", 8888)? .set_default("max_history_length", 8192)? @@ -78,22 +79,26 @@ impl Settings { .separator("__"), ); - let config = if config_file.exists() { - config_builder - .add_source(ConfigFile::new( - config_file.to_str().unwrap(), - FileFormat::Toml, - )) - .build()? + config_builder = if config_file.exists() { + config_builder.add_source(ConfigFile::new( + config_file.to_str().unwrap(), + FileFormat::Toml, + )) } else { + // TODO(@bpeetz): Rework the config handling, so that we can actually auto-write a + // file with defaults. <2026-06-13> create_dir_all(config_file.parent().unwrap())?; - bail!( - "No config file at: `{}`. Please add one.", + info!( + "No config file at: `{}`. Not adding one.", config_file.display() - ) + ); + + config_builder }; + let config = config_builder.build()?; + config .try_deserialize() .map_err(|e| eyre!("failed to deserialize: {}", e)) |
