open with cwd, restore akebi option stuff

This commit is contained in:
SpikeHD
2022-07-21 19:49:51 -07:00
parent 818896c734
commit 1b076ccea9
4 changed files with 24 additions and 1 deletions

View File

@@ -9,6 +9,25 @@ pub fn run_program(path: String) {
});
}
#[tauri::command]
pub fn run_program_relative(path: String) {
// Save the current working directory
let cwd = std::env::current_dir().unwrap();
// Set the new working directory to the path before the executable
let mut path_buf = std::path::PathBuf::from(&path);
path_buf.pop();
// Open in new thread to prevent blocking.
std::thread::spawn(move || {
// Without unwrap_or, this can crash when UAC prompt is denied
open::that(&path).unwrap_or(());
});
// Restore the original working directory
std::env::set_current_dir(&cwd).unwrap();
}
#[tauri::command]
pub fn run_command(program: &str, args: Vec<&str>) {
cmd(program, args).run().expect("Failed to run command");