mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-09 02:09:12 +00:00
38 lines
990 B
TypeScript
38 lines
990 B
TypeScript
import { check, DownloadEvent } from '@tauri-apps/plugin-updater';
|
|
import { relaunch } from '@tauri-apps/plugin-process';
|
|
import { ask, message } from '@tauri-apps/plugin-dialog';
|
|
|
|
export async function runUpdater(onDownloadEvent?:(progress: DownloadEvent) => void) {
|
|
let update;
|
|
try {
|
|
update = await check();
|
|
} catch {
|
|
await message("Failed to check for updates")
|
|
return false
|
|
}
|
|
|
|
if (!update) return;
|
|
if (update.version <= update.currentVersion) return;
|
|
|
|
try {
|
|
await update.download(onDownloadEvent);
|
|
} catch {
|
|
return false
|
|
}
|
|
|
|
const shouldUpdate = await ask(`Version ${update.version} of OpenCode is available, would you like to install it?`)
|
|
if (!shouldUpdate) return;
|
|
|
|
try {
|
|
await update.install();
|
|
} catch {
|
|
await message("Failed to install update")
|
|
return false
|
|
}
|
|
|
|
const shouldRestart = await ask("Update installed successfully, would you like to restart OpenCode?");
|
|
if(shouldRestart) await relaunch()
|
|
|
|
return true;
|
|
}
|