feat: add admin permission prompt for system service

This commit is contained in:
wonfen 2025-03-05 10:22:57 +08:00
parent 9677d8670b
commit c0f5c231ad
3 changed files with 18 additions and 3 deletions

View File

@ -154,8 +154,21 @@ pub async fn reinstall_service() -> Result<()> {
let install_shell: String = install_path.to_string_lossy().into_owned();
let uninstall_shell: String = uninstall_path.to_string_lossy().into_owned();
// 获取提示文本,如果 i18n 失败则使用硬编码默认值
let prompt = crate::utils::i18n::t("Service Administrator Prompt");
let prompt = if prompt == "Service Administrator Prompt" {
if Config::verge().latest().language.as_deref() == Some("zh") || Config::verge().latest().language.is_none() {
"Clash Verge 需要使用管理员权限来重新安装系统服务"
} else {
"Clash Verge needs administrator privileges to reinstall the system service"
}
} else {
&prompt
};
let command = format!(
r#"do shell script "sudo '{uninstall_shell}' && sudo '{install_shell}'" with administrator privileges"#
r#"do shell script "sudo '{uninstall_shell}' && sudo '{install_shell}'" with administrator privileges with prompt "{prompt}""#
);
log::debug!(target: "app", "command: {}", command);

View File

@ -470,5 +470,6 @@
"Validate YAML File": "Validate YAML File",
"Validate Merge File": "Validate Merge File",
"Validation Success": "Validation Success",
"Validation Failed": "Validation Failed"
"Validation Failed": "Validation Failed",
"Service Administrator Prompt": "Clash Verge needs administrator privileges to reinstall the system service"
}

View File

@ -462,5 +462,6 @@
"Validation Success": "验证成功",
"Validation Failed": "验证失败",
"Verge Basic Setting": "Verge 基础设置",
"Verge Advanced Setting": "Verge 高级设置"
"Verge Advanced Setting": "Verge 高级设置",
"Service Administrator Prompt": "Clash Verge 需要使用管理员权限来重新安装系统服务"
}