aboutsummaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorKunal Mohan <kunalmohan99@gmail.com>2021-04-30 20:22:09 +0530
committerKunal Mohan <kunalmohan99@gmail.com>2021-05-04 20:48:17 +0530
commit913697b1442169c5ac20f553b8c255a1114720f5 (patch)
tree654f2ca6bb902d4a19f9f26c9ef3514de69c603d /src/common
parentuse bincode::deserialize_from() to prevent data loss. (diff)
downloadsl0ppij-913697b1442169c5ac20f553b8c255a1114720f5.tar.gz
sl0ppij-913697b1442169c5ac20f553b8c255a1114720f5.tar.xz
sl0ppij-913697b1442169c5ac20f553b8c255a1114720f5.zip
Place socket file in runtime directory or cache directory and use names crate for socket file name
Diffstat (limited to 'src/common')
-rw-r--r--src/common/mod.rs15
-rw-r--r--src/common/os_input_output.rs6
-rw-r--r--src/common/utils/consts.rs7
3 files changed, 15 insertions, 13 deletions
diff --git a/src/common/mod.rs b/src/common/mod.rs
index 4baf503f..10147a2c 100644
--- a/src/common/mod.rs
+++ b/src/common/mod.rs
@@ -11,11 +11,12 @@ pub mod wasm_vm;
use crate::panes::PaneId;
use crate::server::ServerInstruction;
-use crate::utils::consts::ZELLIJ_IPC_PIPE;
use async_std::task_local;
+use directories_next::ProjectDirs;
use errors::{get_current_ctx, ErrorContext};
use lazy_static::lazy_static;
use std::cell::RefCell;
+use std::path::PathBuf;
use std::sync::mpsc;
/// An [MPSC](mpsc) asynchronous channel with added error context.
@@ -77,6 +78,14 @@ task_local! {
}
lazy_static! {
- pub static ref UNIQUE_ZELLIJ_IPC_PIPE: String =
- ZELLIJ_IPC_PIPE.to_string() + uuid::Uuid::new_v4().to_string().as_str();
+ pub static ref ZELLIJ_IPC_PIPE: PathBuf = {
+ let project_dir = ProjectDirs::from("org", "Zellij Contributors", "Zellij").unwrap();
+ let ipc_dir = project_dir
+ .runtime_dir()
+ .unwrap_or_else(|| project_dir.cache_dir());
+ std::fs::create_dir_all(ipc_dir).unwrap();
+ let session_name = names::Generator::default().next().unwrap();
+ let x = ipc_dir.join(session_name);
+ x
+ };
}
diff --git a/src/common/os_input_output.rs b/src/common/os_input_output.rs
index b14b89b8..5dfda264 100644
--- a/src/common/os_input_output.rs
+++ b/src/common/os_input_output.rs
@@ -17,7 +17,7 @@ use std::process::{Child, Command};
use std::sync::{Arc, Mutex};
use crate::client::ClientInstruction;
-use crate::common::UNIQUE_ZELLIJ_IPC_PIPE;
+use crate::common::ZELLIJ_IPC_PIPE;
use crate::errors::{get_current_ctx, ErrorContext};
use crate::panes::PositionAndSize;
use crate::server::ServerInstruction;
@@ -386,11 +386,11 @@ impl ClientOsApi for ClientOsInputOutput {
}
}
fn connect_to_server(&self) {
- let socket = match LocalSocketStream::connect(UNIQUE_ZELLIJ_IPC_PIPE.as_str()) {
+ let socket = match LocalSocketStream::connect(ZELLIJ_IPC_PIPE.clone()) {
Ok(sock) => sock,
Err(_) => {
std::thread::sleep(std::time::Duration::from_millis(20));
- LocalSocketStream::connect(UNIQUE_ZELLIJ_IPC_PIPE.as_str()).unwrap()
+ LocalSocketStream::connect(ZELLIJ_IPC_PIPE.clone()).unwrap()
}
};
let sock_fd = socket.as_raw_fd();
diff --git a/src/common/utils/consts.rs b/src/common/utils/consts.rs
index 4bd1b5b1..f031dd38 100644
--- a/src/common/utils/consts.rs
+++ b/src/common/utils/consts.rs
@@ -3,10 +3,3 @@
pub const ZELLIJ_TMP_DIR: &str = "/tmp/zellij";
pub const ZELLIJ_TMP_LOG_DIR: &str = "/tmp/zellij/zellij-log";
pub const ZELLIJ_TMP_LOG_FILE: &str = "/tmp/zellij/zellij-log/log.txt";
-pub const ZELLIJ_IPC_PIPE: &str = "/tmp/zellij/ipc";
-
-pub const ZELLIJ_CONFIG_FILE_ENV: &str = "ZELLIJ_CONFIG_FILE";
-pub const ZELLIJ_CONFIG_DIR_ENV: &str = "ZELLIJ_CONFIG_DIR";
-
-// TODO: ${PREFIX} argument in makefile
-pub const SYSTEM_DEFAULT_CONFIG_DIR: &str = "/etc/zellij";