|
|
|
@ -840,6 +840,12 @@ impl Update {
|
|
|
|
|
/// MacOS
|
|
|
|
|
#[cfg(target_os = "macos")]
|
|
|
|
|
impl Update {
|
|
|
|
|
/// ### Expected structure:
|
|
|
|
|
/// ├── [AppName]_[version]_x64.app.tar.gz # GZ generated by tauri-bundler
|
|
|
|
|
/// │ └──[AppName].app # Main application
|
|
|
|
|
/// │ └── Contents # Application contents...
|
|
|
|
|
/// │ └── ...
|
|
|
|
|
/// └── ...
|
|
|
|
|
fn install_inner(&self, bytes: &[u8]) -> Result<()> {
|
|
|
|
|
use flate2::read::GzDecoder;
|
|
|
|
|
|
|
|
|
@ -878,7 +884,10 @@ impl Update {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Try to move the current app to backup
|
|
|
|
|
let move_result = std::fs::rename(&self.extract_path, tmp_backup_dir.path().join("current_app"));
|
|
|
|
|
let move_result = std::fs::rename(
|
|
|
|
|
&self.extract_path,
|
|
|
|
|
tmp_backup_dir.path().join("current_app"),
|
|
|
|
|
);
|
|
|
|
|
let need_authorization = if let Err(err) = move_result {
|
|
|
|
|
if err.kind() == std::io::ErrorKind::PermissionDenied {
|
|
|
|
|
true
|
|
|
|
|