aboutsummaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
authorEllie Huxtable <ellie@elliehuxtable.com>2024-06-20 10:28:00 +0100
committerGitHub <noreply@github.com>2024-06-20 10:28:00 +0100
commit9b82bba53f3e9eab26eb9af700027342d8a02ce5 (patch)
tree0a458246b33e2f6456bbe78606f37d1ef8a77d61 /crates
parentfeat(gui): cache zustand store in localstorage (#2168) (diff)
downloadatuin-9b82bba53f3e9eab26eb9af700027342d8a02ce5.zip
feat(daemon): follow XDG_RUNTIME_DIR if set (#2171)
If XDG_RUNTIME_DIR is set, put the socket file there. If not, default to storing it in our data dir. We cannot default to a path such as /run/user/$UID/ because it does not exist on all systems. Any system running systemd will set this var by default, and ensure that the directory it points to is correctly setup.
Diffstat (limited to 'crates')
-rw-r--r--crates/atuin-client/src/settings.rs2
-rw-r--r--crates/atuin-common/src/utils.rs4
2 files changed, 5 insertions, 1 deletions
diff --git a/crates/atuin-client/src/settings.rs b/crates/atuin-client/src/settings.rs
index a34758db..d7b03c2b 100644
--- a/crates/atuin-client/src/settings.rs
+++ b/crates/atuin-client/src/settings.rs
@@ -667,7 +667,7 @@ impl Settings {
let data_dir = atuin_common::utils::data_dir();
let db_path = data_dir.join("history.db");
let record_store_path = data_dir.join("records.db");
- let socket_path = data_dir.join("atuin.sock");
+ let socket_path = atuin_common::utils::runtime_dir().join("atuin.sock");
let key_path = data_dir.join("key");
let session_path = data_dir.join("session");
diff --git a/crates/atuin-common/src/utils.rs b/crates/atuin-common/src/utils.rs
index 3815085e..65f5efc4 100644
--- a/crates/atuin-common/src/utils.rs
+++ b/crates/atuin-common/src/utils.rs
@@ -77,6 +77,10 @@ pub fn data_dir() -> PathBuf {
data_dir.join("atuin")
}
+pub fn runtime_dir() -> PathBuf {
+ std::env::var("XDG_RUNTIME_DIR").map_or_else(|_| data_dir(), PathBuf::from)
+}
+
pub fn dotfiles_cache_dir() -> PathBuf {
// In most cases, this will be ~/.local/share/atuin/dotfiles/cache
let data_dir = std::env::var("XDG_DATA_HOME")