diff options
Diffstat (limited to 'crates/turtle/src/atuin_client/settings.rs')
| -rw-r--r-- | crates/turtle/src/atuin_client/settings.rs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/crates/turtle/src/atuin_client/settings.rs b/crates/turtle/src/atuin_client/settings.rs index e4c21d4a..9e14c4c8 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; @@ -834,12 +834,17 @@ impl Sync { pub(crate) fn user_id(&self) -> Result<Option<Uuid>> { Self::try_read_file(self.user_id_path.as_ref())? - .map(|file| Uuid::try_parse(&file).map_err(Into::into)) + .map(|file| { + Uuid::parse_str(file.trim()).context( + "Failed to decode user id as UUID, while trying to decode sync user_id", + ) + }) .transpose() } pub(crate) fn encryption_key(&self) -> Result<Option<Key>> { Self::try_read_file(self.encryption_key_path.as_ref())? .as_deref() + .map(str::trim) .map(decode_key) .transpose() } @@ -1181,10 +1186,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 |
