Files
electron-egg/electron/autoUpdater.js
gaoshuaixing 0a6ef89538 自动更新
2020-11-13 15:40:43 +08:00

50 lines
1.6 KiB
JavaScript

'use strict';
const updater = require("electron-updater");
const autoUpdater = updater.autoUpdater;
const config = require('./config');
const path = require('path');
const {app} = require('electron');
exports.setup = function () {
const pkgInfo = require(path.join(app.getAppPath(), 'package.json'));
ELog.info('[autoUpdater] [setup] current version: ', pkgInfo.version);
const updateConfig = config.get('autoUpdate');
autoUpdater.setFeedURL(updateConfig.options);
autoUpdater.on('checking-for-update', () => {
sendStatusToWindow('Checking for update...');
})
autoUpdater.on('update-available', (info) => {
sendStatusToWindow('Update available.');
})
autoUpdater.on('update-not-available', (info) => {
sendStatusToWindow('Update not available.');
})
autoUpdater.on('error', (err) => {
sendStatusToWindow('Error in auto-updater. ' + err);
})
autoUpdater.on('download-progress', (progressObj) => {
let log_message = "Download speed: " + progressObj.bytesPerSecond;
log_message = log_message + ' - Downloaded ' + progressObj.percent + '%';
log_message = log_message + ' (' + progressObj.transferred + "/" + progressObj.total + ')';
sendStatusToWindow(log_message);
})
autoUpdater.on('update-downloaded', (info) => {
sendStatusToWindow('Update downloaded');
// quit and update
autoUpdater.quitAndInstall();
});
};
exports.checkUpdate = function () {
autoUpdater.checkForUpdatesAndNotify();
}
function sendStatusToWindow(text) {
ELog.info(text);
MAIN_WINDOW.webContents.send('message', text);
}
exports = module.exports;