aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-13 15:58:25 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-13 15:58:25 +0200
commit7bee7bed25b157f306b502f9ddbd31274e30ce74 (patch)
tree652f4e1f1b529a6287dd98be23d9e73833ce7954
parentperf: Add basic profiling framework (diff)
downloadatuin-7bee7bed25b157f306b502f9ddbd31274e30ce74.zip
fix(config): Don't write non-TOML default config files
-rw-r--r--crates/turtle/src/atuin_client/settings.rs16
-rw-r--r--crates/turtle/src/atuin_server/settings.rs16
-rw-r--r--crates/turtle/src/command/client/search/interactive.rs4
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};