diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-06-13 15:58:25 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-06-13 15:58:25 +0200 |
| commit | 7bee7bed25b157f306b502f9ddbd31274e30ce74 (patch) | |
| tree | 652f4e1f1b529a6287dd98be23d9e73833ce7954 | |
| parent | perf: Add basic profiling framework (diff) | |
| download | atuin-7bee7bed25b157f306b502f9ddbd31274e30ce74.zip | |
fix(config): Don't write non-TOML default config files
| -rw-r--r-- | crates/turtle/src/atuin_client/settings.rs | 16 | ||||
| -rw-r--r-- | crates/turtle/src/atuin_server/settings.rs | 16 | ||||
| -rw-r--r-- | crates/turtle/src/command/client/search/interactive.rs | 4 |
3 files changed, 17 insertions, 19 deletions
diff --git a/crates/turtle/src/atuin_client/settings.rs b/crates/turtle/src/atuin_client/settings.rs index b32a04e0..e4c21d4a 100644 --- a/crates/turtle/src/atuin_client/settings.rs +++ b/crates/turtle/src/atuin_client/settings.rs @@ -999,7 +999,7 @@ impl Settings { .set_default("dialect", "us")? .set_default("timezone", "local")? .set_default("auto_sync", true)? - .set_default("sync_address", "https://api.atuin.sh")? + .set_default("sync.address", "https://api.atuin.sh")? .set_default("sync_frequency", "5m")? .set_default("search_mode", "fuzzy")? .set_default("filter_mode", None::<String>)? @@ -1177,14 +1177,14 @@ impl Settings { .ok_or_else(|| eyre!("config file path is not valid UTF-8"))?; config_builder.add_source(ConfigFile::new(config_file_str, FileFormat::Toml)) } else { - let mut file = File::create(config_file).wrap_err("could not create config file")?; + // 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())?; - let config = config_builder.build_cloned()?; - // TODO(@bpeetz): Not so sure about this <2026-06-10> - file.write_all(config.cache.to_string().as_bytes()) - .wrap_err("could not write default config file")?; - - config_builder + bail!( + "No config file at: `{}`. Please add one.", + config_file.display() + ) }; // all paths should be expanded diff --git a/crates/turtle/src/atuin_server/settings.rs b/crates/turtle/src/atuin_server/settings.rs index 1aa9059d..ee2fbebf 100644 --- a/crates/turtle/src/atuin_server/settings.rs +++ b/crates/turtle/src/atuin_server/settings.rs @@ -1,8 +1,8 @@ -use std::{io::prelude::*, path::PathBuf}; +use std::path::PathBuf; use config::{Config, Environment, File as ConfigFile, FileFormat}; -use eyre::{Result, eyre}; -use fs_err::{File, create_dir_all}; +use eyre::{Result, bail, eyre}; +use fs_err::create_dir_all; use serde::{Deserialize, Serialize}; use crate::atuin_server::database::DbSettings; @@ -87,13 +87,11 @@ impl Settings { .build()? } else { create_dir_all(config_file.parent().unwrap())?; - let mut file = File::create(config_file)?; - let config = config_builder.build()?; - // TODO(@bpeetz): I'm quiet unsure, if this will work <2026-06-10> - file.write_all(config.cache.to_string().as_bytes())?; - - config + bail!( + "No config file at: `{}`. Please add one.", + config_file.display() + ) }; config diff --git a/crates/turtle/src/command/client/search/interactive.rs b/crates/turtle/src/command/client/search/interactive.rs index 49d483b0..b8cf53db 100644 --- a/crates/turtle/src/command/client/search/interactive.rs +++ b/crates/turtle/src/command/client/search/interactive.rs @@ -2475,7 +2475,7 @@ mod tests { } #[test] - #[allow(clippy::similar_names)] + #[expect(clippy::similar_names)] fn test_vim_ctrl_u_d_half_page_scroll() { use ratatui::crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; @@ -2535,7 +2535,7 @@ mod tests { } #[test] - #[allow(clippy::similar_names)] + #[expect(clippy::similar_names)] fn test_vim_ctrl_f_b_full_page_scroll() { use ratatui::crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; |
