diff options
| author | Kunal Mohan <kunalmohan99@gmail.com> | 2021-04-30 20:22:09 +0530 |
|---|---|---|
| committer | Kunal Mohan <kunalmohan99@gmail.com> | 2021-05-04 20:48:17 +0530 |
| commit | 913697b1442169c5ac20f553b8c255a1114720f5 (patch) | |
| tree | 654f2ca6bb902d4a19f9f26c9ef3514de69c603d /src/common | |
| parent | use bincode::deserialize_from() to prevent data loss. (diff) | |
| download | sl0ppij-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.rs | 15 | ||||
| -rw-r--r-- | src/common/os_input_output.rs | 6 | ||||
| -rw-r--r-- | src/common/utils/consts.rs | 7 |
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"; |
