docs/browser/main.js

97 lines
2.5 KiB
JavaScript

var child_process = require('child_process');
var net = require('net');
var os = require('os');
var fs = require('fs');
var path = require('path');
var exec = require('exec');
var autoUpdater = require('auto-updater');
var app = require('app');
var BrowserWindow = require('browser-window');
var ipc = require('ipc');
process.env.NODE_PATH = __dirname + '/../node_modules';
process.chdir(path.join(__dirname, '..'));
app.on('activate-with-no-open-windows', function () {
if (mainWindow) {
mainWindow.show();
}
return false;
});
app.on('ready', function() {
var windowOptions = {
width: 1000,
height: 700,
'min-width': 1000,
'min-height': 700,
resizable: true,
frame: false
};
mainWindow = new BrowserWindow(windowOptions);
mainWindow.hide();
mainWindow.loadUrl('file://' + __dirname + '/../build/index.html');
process.on('uncaughtException', app.quit);
var saveVMOnQuit = false;
app.on('will-quit', function (e) {
if (saveVMOnQuit) {
exec('VBoxManage controlvm boot2docker-vm savestate', function (stderr, stdout, code) {});
}
});
mainWindow.webContents.on('new-window', function (e) {
e.preventDefault();
});
mainWindow.webContents.on('did-finish-load', function() {
mainWindow.show();
mainWindow.focus();
mainWindow.setTitle('');
// Auto Updates
autoUpdater.setFeedUrl('https://updates.kitematic.com/releases/latest?version=' + app.getVersion());
autoUpdater.on('checking-for-update', function (e) {
console.log('Checking for update...');
});
autoUpdater.on('update-available', function (e) {
console.log('Update available.');
console.log(e);
});
autoUpdater.on('update-not-available', function (e) {
console.log('Update not available.');
});
autoUpdater.on('update-downloaded', function (e, releaseNotes, releaseName, releaseDate, updateURL) {
console.log('Update downloaded.');
mainWindow.webContents.send('notify', 'window:update-available');
});
autoUpdater.on('error', function (e) {
console.log('An error occured while checking for updates.');
console.log(e);
});
ipc.on('command', function (event, arg) {
console.log('Command: ' + arg);
if (arg === 'application:quit-install') {
saveVMOnQuit = false;
autoUpdater.quitAndInstall();
}
});
ipc.on('vm', function (event, arg) {
saveVMOnQuit = arg;
});
autoUpdater.checkForUpdates();
});
});