mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-13 05:07:23 +08:00
fix: cannot start gui on linux (#1090)
This commit is contained in:
@@ -40,8 +40,7 @@ chrono = { version = "0.4.37", features = ["serde"] }
|
||||
|
||||
once_cell = "1.18.0"
|
||||
dashmap = "6.0"
|
||||
|
||||
privilege = "0.3"
|
||||
elevated-command = "1.1.2"
|
||||
gethostname = "0.5"
|
||||
|
||||
dunce = "1.0.4"
|
||||
|
||||
@@ -128,18 +128,20 @@ fn toggle_window_visibility<R: tauri::Runtime>(app: &tauri::AppHandle<R>) {
|
||||
|
||||
#[cfg(not(target_os = "android"))]
|
||||
fn check_sudo() -> bool {
|
||||
use std::env::current_exe;
|
||||
let is_elevated = privilege::user::privileged();
|
||||
let is_elevated = elevated_command::Command::is_elevated();
|
||||
if !is_elevated {
|
||||
let Ok(exe) = current_exe() else {
|
||||
return true;
|
||||
};
|
||||
let exe_path = std::env::var("APPIMAGE")
|
||||
.ok()
|
||||
.or_else(|| std::env::args().next())
|
||||
.unwrap_or_default();
|
||||
let args: Vec<String> = std::env::args().collect();
|
||||
let mut elevated_cmd = privilege::runas::Command::new(exe);
|
||||
let mut stdcmd = std::process::Command::new(&exe_path);
|
||||
if args.contains(&AUTOSTART_ARG.to_owned()) {
|
||||
elevated_cmd.arg(AUTOSTART_ARG);
|
||||
stdcmd.arg(AUTOSTART_ARG);
|
||||
}
|
||||
let _ = elevated_cmd.force_prompt(true).hide(true).gui(true).run();
|
||||
elevated_command::Command::new(stdcmd)
|
||||
.output()
|
||||
.expect("Failed to run elevated command");
|
||||
}
|
||||
is_elevated
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user