Application now checks for updates every 30 minutes.

This commit is contained in:
Daniel Scalzi 2018-04-28 18:45:19 -04:00
parent f1cf433ca8
commit 0216582827
No known key found for this signature in database
GPG Key ID: 5CA2F145B63535F9
2 changed files with 24 additions and 15 deletions

View File

@ -5,9 +5,9 @@
* modules, excluding dependencies. * modules, excluding dependencies.
*/ */
// Requirements // Requirements
const $ = require('jquery'); const $ = require('jquery');
const {ipcRenderer, remote, shell, webFrame} = require('electron') const {ipcRenderer, remote, shell, webFrame} = require('electron')
const isDev = require('electron-is-dev') const isDev = require('electron-is-dev')
// Disable eval function. // Disable eval function.
// eslint-disable-next-line // eslint-disable-next-line
@ -29,35 +29,42 @@ webFrame.setLayoutZoomLevelLimits(0, 0)
// Initialize auto updates in production environments. // Initialize auto updates in production environments.
// TODO Make this the case after implementation is done. // TODO Make this the case after implementation is done.
let updateCheckListener
if(!isDev){ if(!isDev){
ipcRenderer.on('autoUpdateNotification', (event, arg, info) => { ipcRenderer.on('autoUpdateNotification', (event, arg, info) => {
switch(arg){ switch(arg){
case 'checking-for-update': case 'checking-for-update':
console.log('Checking for update..') console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Checking for update..')
break break
case 'update-available': 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 break
case 'update-downloaded': 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) showUpdateUI(info)
break break
case 'update-not-available': case 'update-not-available':
console.log('No new update found.') console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No new update found.')
break break
case 'ready': case 'ready':
updateCheckListener = setInterval(() => {
ipcRenderer.send('autoUpdateAction', 'checkForUpdate')
}, 1800000)
ipcRenderer.send('autoUpdateAction', 'checkForUpdate') ipcRenderer.send('autoUpdateAction', 'checkForUpdate')
case 'error': case 'realerror':
console.log('Error during update check..') if(info != null && info.code != null){
console.debug('Error Code:', info != null ? info.code : null) if(info.code === 'ERR_UPDATER_INVALID_RELEASE_FEED'){
if(err != null && err.code != null){ console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No suitable releases found.')
if(err.code === 'ERR_UPDATER_INVALID_RELEASE_FEED'){ } else if(info.code === 'ERR_XML_MISSED_ELEMENT'){
console.log('No suitable releases found.') 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 break
default: default:
console.log('Unknown argument', arg) console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Unknown argument', arg)
break break
} }
}) })

View File

@ -6,7 +6,8 @@ const url = require('url')
const fs = require('fs') const fs = require('fs')
const ejse = require('ejs-electron') 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) // Defaults to true if application version contains prerelease components (e.g. 0.12.1-alpha.1)
// autoUpdater.allowPrerelease = true // autoUpdater.allowPrerelease = true
if(isDev){ if(isDev){
@ -27,6 +28,7 @@ function initAutoUpdater(event){
}) })
} }
// Open channel to listen for update actions.
ipcMain.on('autoUpdateAction', (event, arg) => { ipcMain.on('autoUpdateAction', (event, arg) => {
switch(arg){ switch(arg){
case 'initAutoUpdater': case 'initAutoUpdater':
@ -37,7 +39,7 @@ ipcMain.on('autoUpdateAction', (event, arg) => {
case 'checkForUpdate': case 'checkForUpdate':
autoUpdater.checkForUpdates() autoUpdater.checkForUpdates()
.catch(err => { .catch(err => {
event.sender.send('autoUpdateNotification', 'error', err) event.sender.send('autoUpdateNotification', 'realerror', err)
}) })
break break
case 'installUpdateNow': case 'installUpdateNow':