From 2ae30cb2851ed60270ab8fc769c1c6b953cd0b9f Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Thu, 25 Feb 2021 08:54:42 -0500 Subject: [PATCH] broadcast update available only after downloading update Signed-off-by: Sebastian Malton --- src/main/app-updater.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/app-updater.ts b/src/main/app-updater.ts index 9893abfa81..79c2836402 100644 --- a/src/main/app-updater.ts +++ b/src/main/app-updater.ts @@ -39,10 +39,10 @@ export const startUpdateChecking = once(function (interval = 1000 * 60 * 60 * 24 autoUpdater.autoInstallOnAppQuit = false; autoUpdater - .on("update-available", (args: UpdateInfo) => { + .on("update-available", (info: UpdateInfo) => { if (autoUpdater.autoInstallOnAppQuit) { // a previous auto-update loop was completed with YES+LATER, check if same version - if (installVersion === args.version) { + if (installVersion === info.version) { // same version, don't broadcast return; } @@ -54,10 +54,14 @@ export const startUpdateChecking = once(function (interval = 1000 * 60 * 60 * 24 * didn't ask for. */ autoUpdater.autoInstallOnAppQuit = false; - installVersion = args.version; + installVersion = info.version; + autoUpdater.downloadUpdate() + .catch(error => logger.error(`${AutoUpdateLogPrefix}: failed to download update`, { error: String(error) })); + }) + .on("update-downloaded", (info: UpdateInfo) => { try { - const backchannel = `auto-update:${args.version}`; + const backchannel = `auto-update:${info.version}`; ipcMain.removeAllListeners(backchannel); // only one handler should be present @@ -68,8 +72,8 @@ export const startUpdateChecking = once(function (interval = 1000 * 60 * 60 * 24 listener: handleAutoUpdateBackChannel, verifier: areArgsUpdateAvailableToBackchannel, }); - logger.info(`${AutoUpdateLogPrefix}: broadcasting update available`, { backchannel, version: args.version }); - broadcastMessage(UpdateAvailableChannel, backchannel, args); + logger.info(`${AutoUpdateLogPrefix}: broadcasting update available`, { backchannel, version: info.version }); + broadcastMessage(UpdateAvailableChannel, backchannel, info); } catch (error) { logger.error(`${AutoUpdateLogPrefix}: broadcasting failed`, { error }); installVersion = undefined;