diff --git a/src/platform/macos.rs b/src/platform/macos.rs index 3576b60ce..c49884ad6 100644 --- a/src/platform/macos.rs +++ b/src/platform/macos.rs @@ -343,8 +343,17 @@ fn update_daemon_agent( bail!("run osascript failed: {}", e); } Ok(output) if !output.status.success() => { - log::warn!("run osascript failed with status: {}", output.status); - bail!("run osascript failed with status: {}", output.status); + let stderr = String::from_utf8_lossy(&output.stderr); + log::warn!( + "run osascript failed with status: {}, stderr: {}", + output.status, + stderr.trim() + ); + bail!( + "run osascript failed with status: {}, stderr: {}", + output.status, + stderr.trim() + ); } _ => { let installed = std::path::Path::new(&agent_plist_file).exists(); @@ -1000,8 +1009,17 @@ fn update_me_from_app_dir(app_dir: String, keep_current_process: bool) -> Result .output(); match output { Ok(output) if !output.status.success() => { - log::error!("osascript execution failed with status: {}", output.status); - bail!("osascript execution failed with status: {}", output.status); + let stderr = String::from_utf8_lossy(&output.stderr); + log::error!( + "osascript execution failed with status: {}, stderr: {}", + output.status, + stderr.trim() + ); + bail!( + "osascript execution failed with status: {}, stderr: {}", + output.status, + stderr.trim() + ); } Err(e) => { log::error!("run osascript failed: {}", e); diff --git a/src/platform/windows.rs b/src/platform/windows.rs index 7903182c0..38973a6d0 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -3765,10 +3765,12 @@ fn copy_update_file_for_verification(file: &str) -> ResultType path.to_owned(), Err(e) => { - std::fs::remove_file(&update_file.path).ok(); + let path = update_file.path.clone(); + drop(update_file); + std::fs::remove_file(&path).ok(); return Err(e); } }; if let Err(e) = verify_update_file_sha256(&mut update_file.file, expected_sha256, &update_path) .and_then(|_| verify_update_file_signature_for_path(&update_path)) { - std::fs::remove_file(&update_file.path).ok(); + let path = update_file.path.clone(); + drop(update_file); + std::fs::remove_file(&path).ok(); return Err(e); } Ok(update_file)