|
|
@@ -1,42 +1,42 @@
|
|
|
-import { check, DownloadEvent } from "@tauri-apps/plugin-updater"
|
|
|
+import { check } from "@tauri-apps/plugin-updater"
|
|
|
import { relaunch } from "@tauri-apps/plugin-process"
|
|
|
import { ask, message } from "@tauri-apps/plugin-dialog"
|
|
|
import { invoke } from "@tauri-apps/api/core"
|
|
|
|
|
|
export const UPDATER_ENABLED = window.__OPENCODE__?.updaterEnabled ?? false
|
|
|
|
|
|
-export async function runUpdater(onDownloadEvent?: (progress: DownloadEvent) => void) {
|
|
|
+export async function runUpdater({ alertOnFail }: { alertOnFail: boolean }) {
|
|
|
let update
|
|
|
try {
|
|
|
update = await check()
|
|
|
} catch {
|
|
|
- await message("Failed to check for updates")
|
|
|
- return false
|
|
|
+ if(alertOnFail) await message("Failed to check for updates", { title: "Update Check Failed"})
|
|
|
}
|
|
|
|
|
|
- if (!update) return
|
|
|
- if (update.version <= update.currentVersion) return
|
|
|
+ if (!update){
|
|
|
+ if(alertOnFail) await message("You are already using the latest version of OpenCode", { title: "No Update Available"})
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
try {
|
|
|
- await update.download(onDownloadEvent)
|
|
|
+ await update.download()
|
|
|
} catch {
|
|
|
- return false
|
|
|
+ if(alertOnFail) await message("Failed to download update", { title: "Update Failed" })
|
|
|
}
|
|
|
|
|
|
const shouldUpdate = await ask(
|
|
|
`Version ${update.version} of OpenCode has been downloaded, would you like to install it and relaunch?`,
|
|
|
+ { title: "Update Downloaded" }
|
|
|
)
|
|
|
if (!shouldUpdate) return
|
|
|
|
|
|
try {
|
|
|
await update.install()
|
|
|
} catch {
|
|
|
- await message("Failed to install update")
|
|
|
- return false
|
|
|
+ await message("Failed to install update", { title: "Update Failed" })
|
|
|
}
|
|
|
|
|
|
await invoke("kill_sidecar")
|
|
|
await relaunch()
|
|
|
-
|
|
|
- return true
|
|
|
}
|