hotfix(logging): fix atomic_create_file and make set_permissions() return an error
This commit is contained in:
parent
23450a708c
commit
2446aec82c
5 changed files with 15 additions and 11 deletions
|
|
@ -25,10 +25,10 @@ use zellij_tile::data::Palette;
|
||||||
|
|
||||||
const UNIX_PERMISSIONS: u32 = 0o700;
|
const UNIX_PERMISSIONS: u32 = 0o700;
|
||||||
|
|
||||||
pub fn set_permissions(path: &Path) {
|
pub fn set_permissions(path: &Path) -> io::Result<()> {
|
||||||
let mut permissions = fs::metadata(path).unwrap().permissions();
|
let mut permissions = fs::metadata(path)?.permissions();
|
||||||
permissions.set_mode(UNIX_PERMISSIONS);
|
permissions.set_mode(UNIX_PERMISSIONS);
|
||||||
fs::set_permissions(path, permissions).unwrap();
|
fs::set_permissions(path, permissions)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn into_raw_mode(pid: RawFd) {
|
fn into_raw_mode(pid: RawFd) {
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ pub mod install {
|
||||||
let path = data_dir.join(path);
|
let path = data_dir.join(path);
|
||||||
let parent_path = path.parent().unwrap();
|
let parent_path = path.parent().unwrap();
|
||||||
fs::create_dir_all(parent_path).unwrap();
|
fs::create_dir_all(parent_path).unwrap();
|
||||||
set_permissions(parent_path);
|
set_permissions(parent_path).unwrap();
|
||||||
if out_of_date || !path.exists() {
|
if out_of_date || !path.exists() {
|
||||||
fs::write(path, bytes).expect("Failed to install default assets!");
|
fs::write(path, bytes).expect("Failed to install default assets!");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ lazy_static! {
|
||||||
);
|
);
|
||||||
ipc_dir.push(VERSION);
|
ipc_dir.push(VERSION);
|
||||||
fs::create_dir_all(&ipc_dir).unwrap();
|
fs::create_dir_all(&ipc_dir).unwrap();
|
||||||
set_permissions(&ipc_dir);
|
set_permissions(&ipc_dir).unwrap();
|
||||||
ipc_dir.push(&*SESSION_NAME);
|
ipc_dir.push(&*SESSION_NAME);
|
||||||
ipc_dir
|
ipc_dir
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,13 @@ use crate::os_input_output::set_permissions;
|
||||||
use crate::utils::consts::{ZELLIJ_TMP_LOG_DIR, ZELLIJ_TMP_LOG_FILE};
|
use crate::utils::consts::{ZELLIJ_TMP_LOG_DIR, ZELLIJ_TMP_LOG_FILE};
|
||||||
|
|
||||||
pub fn atomic_create_file(file_name: &Path) {
|
pub fn atomic_create_file(file_name: &Path) {
|
||||||
let _ = fs::OpenOptions::new().create(true).open(file_name);
|
let _ = fs::OpenOptions::new()
|
||||||
|
.append(true)
|
||||||
|
.create(true)
|
||||||
|
.open(file_name)
|
||||||
|
.unwrap();
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
set_permissions(file_name);
|
set_permissions(file_name).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn atomic_create_dir(dir_name: &Path) -> io::Result<()> {
|
pub fn atomic_create_dir(dir_name: &Path) -> io::Result<()> {
|
||||||
|
|
@ -27,7 +31,7 @@ pub fn atomic_create_dir(dir_name: &Path) -> io::Result<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
};
|
};
|
||||||
if result.is_ok() {
|
if result.is_ok() {
|
||||||
set_permissions(dir_name);
|
set_permissions(dir_name)?;
|
||||||
}
|
}
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
@ -41,7 +45,6 @@ pub fn debug_log_to_file_without_newline(message: String) -> io::Result<()> {
|
||||||
atomic_create_file(&*ZELLIJ_TMP_LOG_FILE);
|
atomic_create_file(&*ZELLIJ_TMP_LOG_FILE);
|
||||||
let mut file = fs::OpenOptions::new()
|
let mut file = fs::OpenOptions::new()
|
||||||
.append(true)
|
.append(true)
|
||||||
.create(true)
|
|
||||||
.open(&*ZELLIJ_TMP_LOG_FILE)?;
|
.open(&*ZELLIJ_TMP_LOG_FILE)?;
|
||||||
file.write_all(message.as_bytes())
|
file.write_all(message.as_bytes())
|
||||||
}
|
}
|
||||||
|
|
@ -78,6 +81,7 @@ pub fn debug_to_file(message: u8, pid: RawFd) -> io::Result<()> {
|
||||||
let mut file = fs::OpenOptions::new()
|
let mut file = fs::OpenOptions::new()
|
||||||
.append(true)
|
.append(true)
|
||||||
.create(true)
|
.create(true)
|
||||||
.open(path)?;
|
.open(&path)?;
|
||||||
|
set_permissions(&path)?;
|
||||||
file.write_all(&[message])
|
file.write_all(&[message])
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ pub fn start_server(os_input: Box<dyn ServerOsApi>) -> thread::JoinHandle<()> {
|
||||||
move || {
|
move || {
|
||||||
drop(std::fs::remove_file(&*ZELLIJ_IPC_PIPE));
|
drop(std::fs::remove_file(&*ZELLIJ_IPC_PIPE));
|
||||||
let listener = LocalSocketListener::bind(&**ZELLIJ_IPC_PIPE).unwrap();
|
let listener = LocalSocketListener::bind(&**ZELLIJ_IPC_PIPE).unwrap();
|
||||||
set_permissions(&*ZELLIJ_IPC_PIPE);
|
set_permissions(&*ZELLIJ_IPC_PIPE).unwrap();
|
||||||
for stream in listener.incoming() {
|
for stream in listener.incoming() {
|
||||||
match stream {
|
match stream {
|
||||||
Ok(stream) => {
|
Ok(stream) => {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue