From 0216582827573e3269c3482e3551de6cd824b734 Mon Sep 17 00:00:00 2001 From: Daniel Scalzi Date: Sat, 28 Apr 2018 18:45:19 -0400 Subject: [PATCH] Application now checks for updates every 30 minutes. --- app/assets/js/scripts/uicore.js | 33 ++++++++++++++++++++------------- index.js | 6 ++++-- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/app/assets/js/scripts/uicore.js b/app/assets/js/scripts/uicore.js index 2e2ae1c..061a4e4 100644 --- a/app/assets/js/scripts/uicore.js +++ b/app/assets/js/scripts/uicore.js @@ -5,9 +5,9 @@ * modules, excluding dependencies. */ // Requirements -const $ = require('jquery'); +const $ = require('jquery'); const {ipcRenderer, remote, shell, webFrame} = require('electron') -const isDev = require('electron-is-dev') +const isDev = require('electron-is-dev') // Disable eval function. // eslint-disable-next-line @@ -29,35 +29,42 @@ webFrame.setLayoutZoomLevelLimits(0, 0) // Initialize auto updates in production environments. // TODO Make this the case after implementation is done. +let updateCheckListener if(!isDev){ ipcRenderer.on('autoUpdateNotification', (event, arg, info) => { switch(arg){ case 'checking-for-update': - console.log('Checking for update..') + console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Checking for update..') break case 'update-available': - console.log('New update available', info.version) + console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'New update available', info.version) break case 'update-downloaded': - console.log('Update ' + info.version + ' ready to be installed.') + console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Update ' + info.version + ' ready to be installed.') showUpdateUI(info) break case 'update-not-available': - console.log('No new update found.') + console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No new update found.') break case 'ready': + updateCheckListener = setInterval(() => { + ipcRenderer.send('autoUpdateAction', 'checkForUpdate') + }, 1800000) ipcRenderer.send('autoUpdateAction', 'checkForUpdate') - case 'error': - console.log('Error during update check..') - console.debug('Error Code:', info != null ? info.code : null) - if(err != null && err.code != null){ - if(err.code === 'ERR_UPDATER_INVALID_RELEASE_FEED'){ - console.log('No suitable releases found.') + case 'realerror': + if(info != null && info.code != null){ + if(info.code === 'ERR_UPDATER_INVALID_RELEASE_FEED'){ + console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No suitable releases found.') + } else if(info.code === 'ERR_XML_MISSED_ELEMENT'){ + console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No releases found.') + } else { + console.error('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Error during update check..', info) + console.debug('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Error Code:', info.code) } } break default: - console.log('Unknown argument', arg) + console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Unknown argument', arg) break } }) diff --git a/index.js b/index.js index ec53348..f87fd06 100644 --- a/index.js +++ b/index.js @@ -6,7 +6,8 @@ const url = require('url') const fs = require('fs') const ejse = require('ejs-electron') -function initAutoUpdater(event){ +// Setup auto updater. +function initAutoUpdater(event) { // Defaults to true if application version contains prerelease components (e.g. 0.12.1-alpha.1) // autoUpdater.allowPrerelease = true if(isDev){ @@ -27,6 +28,7 @@ function initAutoUpdater(event){ }) } +// Open channel to listen for update actions. ipcMain.on('autoUpdateAction', (event, arg) => { switch(arg){ case 'initAutoUpdater': @@ -37,7 +39,7 @@ ipcMain.on('autoUpdateAction', (event, arg) => { case 'checkForUpdate': autoUpdater.checkForUpdates() .catch(err => { - event.sender.send('autoUpdateNotification', 'error', err) + event.sender.send('autoUpdateNotification', 'realerror', err) }) break case 'installUpdateNow':