fix: failed to install service on macos

This commit is contained in:
huzibaca 2024-10-23 04:46:47 +08:00
parent afde7e4a44
commit da8ed1ac5a
No known key found for this signature in database
GPG Key ID: D4364EE4851DC302
3 changed files with 16 additions and 6 deletions

View File

@ -138,12 +138,14 @@ pub async fn reinstall_service() -> Result<()> {
bail!(format!("uninstaller not found: {uninstall_path:?}"));
}
let install_shell: String = install_path.to_string_lossy().replace(" ", "\\ ");
let uninstall_shell: String = uninstall_path.to_string_lossy().replace(" ", "\\ ");
let install_shell: String = install_path.to_string_lossy().into_owned();
let uninstall_shell: String = uninstall_path.to_string_lossy().into_owned();
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"#
);
log::debug!(target: "app", "command: {}", command);
let status = StdCommand::new("osascript")
.args(vec!["-e", &command])
.status()?;

View File

@ -206,7 +206,7 @@ pub fn init_resources() -> Result<()> {
let src_path = res_dir.join(file);
let dest_path = app_dir.join(file);
let test_dest_path = test_dir.join(file);
log::info!(target: "app", "src_path: {src_path:?}, dest_path: {dest_path:?}");
log::debug!(target: "app", "src_path: {src_path:?}, dest_path: {dest_path:?}");
let handle_copy = |dest: &PathBuf| {
match fs::copy(&src_path, dest) {

View File

@ -54,9 +54,17 @@ pub async fn resolve_setup(app: &mut App) {
log_err!(Config::init_config().await);
if service::check_service().await.is_err() {
log_err!(service::reinstall_service().await);
match service::reinstall_service().await {
Ok(_) => {
log::info!(target:"app", "install service susccess.");
std::thread::sleep(std::time::Duration::from_millis(1000));
}
Err(e) => {
log::error!(target: "app", "{e:?}");
app.app_handle().exit(-1);
}
}
}
log::trace!(target: "app", "launch core");
log_err!(CoreManager::global().init().await);