From c93991b5d0e76b7c2381f840655620cfdc2b8388 Mon Sep 17 00:00:00 2001 From: Michelle Tilley Date: Tue, 13 May 2025 08:29:04 -0700 Subject: [PATCH] chore: Allow setting script DB path (#2750) * chore: Allow setting script DB path * Rename scripts.database_path setting to scripts.db_path to match other crates --- CONTRIBUTING.md | 5 +++-- crates/atuin-client/src/settings.rs | 2 ++ crates/atuin-client/src/settings/scripts.rs | 4 ++-- crates/atuin/src/command/client/scripts.rs | 3 +-- crates/atuin/src/command/client/store/rebuild.rs | 3 +-- crates/atuin/src/sync.rs | 2 +- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0a761e07..8f5b2194 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,9 +13,10 @@ Before working on anything, we suggest taking a copy of your Atuin data director While data directory backups are always a good idea, you can instruct Atuin to use custom path using the following environment variables: ```shell +export ATUIN_RECORD_STORE_PATH=/tmp/atuin_records.db export ATUIN_DB_PATH=/tmp/atuin_dev.db export ATUIN_KV__DB_PATH=/tmp/atuin_kv.db -export ATUIN_RECORD_STORE_PATH=/tmp/atuin_records.db +export ATUIN_SCRIPTS__DB_PATH=/tmp/atuin_scripts.db ``` It is also recommended to update your `$PATH` so that the pre-exec scripts would use the locally built version: @@ -24,7 +25,7 @@ It is also recommended to update your `$PATH` so that the pre-exec scripts would export PATH="./target/release:$PATH" ``` -These 4 variables can be added in a local `.envrc` file, read by [direnv](https://direnv.net/). +These 5 variables can be added in a local `.envrc` file, read by [direnv](https://direnv.net/). ## PRs diff --git a/crates/atuin-client/src/settings.rs b/crates/atuin-client/src/settings.rs index 48803a49..d1f37e39 100644 --- a/crates/atuin-client/src/settings.rs +++ b/crates/atuin-client/src/settings.rs @@ -741,6 +741,7 @@ impl Settings { let db_path = data_dir.join("history.db"); let record_store_path = data_dir.join("records.db"); let kv_path = data_dir.join("kv.db"); + let scripts_path = data_dir.join("scripts.db"); let socket_path = atuin_common::utils::runtime_dir().join("atuin.sock"); let key_path = data_dir.join("key"); @@ -805,6 +806,7 @@ impl Settings { .set_default("daemon.systemd_socket", false)? .set_default("daemon.tcp_port", 8889)? .set_default("kv.db_path", kv_path.to_str())? + .set_default("scripts.db_path", scripts_path.to_str())? .set_default( "search.filters", vec!["global", "host", "session", "workspace", "directory"], diff --git a/crates/atuin-client/src/settings/scripts.rs b/crates/atuin-client/src/settings/scripts.rs index e9d66c93..a1a5ed6a 100644 --- a/crates/atuin-client/src/settings/scripts.rs +++ b/crates/atuin-client/src/settings/scripts.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct Settings { - pub database_path: String, + pub db_path: String, } impl Default for Settings { @@ -11,7 +11,7 @@ impl Default for Settings { let path = dir.join("scripts.db"); Self { - database_path: path.to_string_lossy().to_string(), + db_path: path.to_string_lossy().to_string(), } } } diff --git a/crates/atuin/src/command/client/scripts.rs b/crates/atuin/src/command/client/scripts.rs index 2b4b58bb..cd1b13ba 100644 --- a/crates/atuin/src/command/client/scripts.rs +++ b/crates/atuin/src/command/client/scripts.rs @@ -561,8 +561,7 @@ impl Cmd { let script_store = ScriptStore::new(store, host_id, encryption_key); let script_db = - atuin_scripts::database::Database::new(settings.scripts.database_path.clone(), 1.0) - .await?; + atuin_scripts::database::Database::new(settings.scripts.db_path.clone(), 1.0).await?; match self { Self::New(new_script) => { diff --git a/crates/atuin/src/command/client/store/rebuild.rs b/crates/atuin/src/command/client/store/rebuild.rs index 6fdd3ca4..f8784a6f 100644 --- a/crates/atuin/src/command/client/store/rebuild.rs +++ b/crates/atuin/src/command/client/store/rebuild.rs @@ -79,8 +79,7 @@ impl Rebuild { let host_id = Settings::host_id().expect("failed to get host_id"); let script_store = ScriptStore::new(store, host_id, encryption_key); let database = - atuin_scripts::database::Database::new(settings.scripts.database_path.clone(), 1.0) - .await?; + atuin_scripts::database::Database::new(settings.scripts.db_path.clone(), 1.0).await?; script_store.build(database).await?; diff --git a/crates/atuin/src/sync.rs b/crates/atuin/src/sync.rs index ad1e9764..b95b78b9 100644 --- a/crates/atuin/src/sync.rs +++ b/crates/atuin/src/sync.rs @@ -44,7 +44,7 @@ pub async fn build( kv_store.build().await?; let script_db = - atuin_scripts::database::Database::new(settings.scripts.database_path.clone(), 1.0).await?; + atuin_scripts::database::Database::new(settings.scripts.db_path.clone(), 1.0).await?; script_store.build(script_db).await?; Ok(()) }