diff --git a/src/main/index.ts b/src/main/index.ts index 06e06b4..763a220 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,11 +1,17 @@ -import { app, shell, BrowserWindow, ipcMain } from 'electron' +import { app, shell, BrowserWindow, ipcMain, Notification } from 'electron' import { join } from 'path' import { electronApp, optimizer, is } from '@electron-toolkit/utils' import icon from '../../resources/icon.png?asset' +import { autoUpdater } from 'electron-updater' +autoUpdater.autoDownload = false; +autoUpdater.autoInstallOnAppQuit = true; + +let mainWindow; function createWindow(): void { // Create the browser window. - const mainWindow = new BrowserWindow({ + // const mainWindow = new BrowserWindow({ + mainWindow = new BrowserWindow({ width: 900, height: 670, show: false, @@ -54,6 +60,8 @@ app.whenReady().then(() => { createWindow() + checkForUpdates(); + app.on('activate', function () { // On macOS it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. @@ -70,5 +78,39 @@ app.on('window-all-closed', () => { } }) -// In this file you can include the rest of your app's specific main process -// code. You can also put them in separate files and require them here. +function checkForUpdates() { + autoUpdater.checkForUpdates(); + console.log(`Checking for updates. Current version ${app.getVersion()}`); + showNotification(`Checking for updates. Current version ${app.getVersion()}`); +} + +function showNotification(value: any) { + new Notification({ + title: value, + }).show() +} + +/*New Update Available*/ +autoUpdater.on("update-available", (info) => { + console.log(`Update available. Current version ${app.getVersion()}`); + showNotification(`Update available. Current version ${app.getVersion()}`); + let pth = autoUpdater.downloadUpdate(); + console.log(pth); + showNotification(pth); +}); + +autoUpdater.on("update-not-available", (info) => { + console.log(`No update available. Current version ${app.getVersion()}`); + showNotification(`No update available. Current version ${app.getVersion()}`); +}); + +/*Download Completion Message*/ +autoUpdater.on("update-downloaded", (info) => { + console.log(`Update downloaded. Current version ${app.getVersion()}`); + showNotification(`Update downloaded. Current version ${app.getVersion()}`); +}); + +autoUpdater.on("error", (info) => { + console.log(info); + showNotification(info); +}); \ No newline at end of file