diff --git a/src/file_utils.rs b/src/file_utils.rs index 5a54521..14a5328 100644 --- a/src/file_utils.rs +++ b/src/file_utils.rs @@ -7,7 +7,7 @@ use std::{ use expect_dialog::ExpectDialog; -use crate::constants::CMD_NAME; +use crate::{constants::CMD_NAME, runner::Runner}; pub fn get_writer(path_s: &String) -> BufWriter { let path = Path::new(path_s); @@ -72,3 +72,13 @@ pub fn set_file_radonly(path_s: &String, readonly: bool) { perms.set_readonly(readonly); fs::set_permissions(path, perms).expect_dialog("Could not set permissions for file") } + +pub fn setcap_cap_sys_nice_eip(file: String) { + let mut runner = Runner::new(None, "pkexec".into(), vec![ + "setcap".into(), + "CAP_SYS_NICE=eip".into(), + file + ]); + runner.start(); + runner.join(); +}