2016-03-27 20:40:07 +02:00
|
|
|
'use strict';
|
|
|
|
|
2016-03-27 22:22:04 +02:00
|
|
|
//for searching modules
|
|
|
|
const walk = require('walk');
|
2016-03-28 13:23:02 +02:00
|
|
|
const spawn = require('child_process').spawn;
|
2016-03-27 22:22:04 +02:00
|
|
|
|
2016-03-27 20:40:07 +02:00
|
|
|
const electron = require('electron');
|
|
|
|
// Module to control application life.
|
|
|
|
const app = electron.app;
|
|
|
|
// Module to create native browser window.
|
|
|
|
const BrowserWindow = electron.BrowserWindow;
|
|
|
|
|
|
|
|
// Keep a global reference of the window object, if you don't, the window will
|
|
|
|
// be closed automatically when the JavaScript object is garbage collected.
|
|
|
|
let mainWindow;
|
|
|
|
|
|
|
|
function createWindow () {
|
|
|
|
// Create the browser window.
|
2016-03-28 01:59:05 +02:00
|
|
|
mainWindow = new BrowserWindow({width: 800, height: 600, fullscreen: true, "auto-hide-menu-bar": true, "node-integration": false});
|
2016-03-27 20:40:07 +02:00
|
|
|
|
|
|
|
// and load the index.html of the app.
|
|
|
|
mainWindow.loadURL('file://' + __dirname + '../../index.html');
|
|
|
|
|
|
|
|
// Open the DevTools.
|
|
|
|
//mainWindow.webContents.openDevTools();
|
|
|
|
|
|
|
|
// Emitted when the window is closed.
|
|
|
|
mainWindow.on('closed', function() {
|
|
|
|
// Dereference the window object, usually you would store windows
|
|
|
|
// in an array if your app supports multi windows, this is the time
|
|
|
|
// when you should delete the corresponding element.
|
|
|
|
mainWindow = null;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2016-03-28 01:59:05 +02:00
|
|
|
//Walk module folder and get file names
|
2016-03-28 00:26:24 +02:00
|
|
|
var module_loader = walk.walk(__dirname + '/../modules', { followLinks: false });
|
2016-03-27 22:22:04 +02:00
|
|
|
|
2016-03-28 01:59:05 +02:00
|
|
|
//for each file in modules
|
2016-03-28 00:26:24 +02:00
|
|
|
module_loader.on('file', function(root, stat, next) {
|
2016-03-28 01:59:05 +02:00
|
|
|
//if file is called node_helper.js load it
|
2016-03-27 22:22:04 +02:00
|
|
|
if (stat.name == "node_helper.js"){
|
2016-03-28 13:23:02 +02:00
|
|
|
//start module as child
|
|
|
|
spawn('node', [root + '/' + stat.name])
|
2016-03-28 01:59:05 +02:00
|
|
|
//Log module name
|
|
|
|
var module = (root + '/' + stat.name).split("/")
|
|
|
|
console.log("Started helper script for module " + module[module.length-2] + ".");
|
2016-03-27 22:22:04 +02:00
|
|
|
}
|
|
|
|
next();
|
|
|
|
});
|
|
|
|
|
2016-03-28 00:26:24 +02:00
|
|
|
module_loader.on('end', function() {
|
2016-03-28 01:59:05 +02:00
|
|
|
console.log("All helpers started.");
|
2016-03-27 22:22:04 +02:00
|
|
|
});
|
|
|
|
|
2016-03-27 20:40:07 +02:00
|
|
|
// This method will be called when Electron has finished
|
|
|
|
// initialization and is ready to create browser windows.
|
|
|
|
app.on('ready', createWindow);
|
|
|
|
|
|
|
|
// Quit when all windows are closed.
|
|
|
|
app.on('window-all-closed', function () {
|
|
|
|
// On OS X it is common for applications and their menu bar
|
|
|
|
// to stay active until the user quits explicitly with Cmd + Q
|
|
|
|
if (process.platform !== 'darwin') {
|
|
|
|
app.quit();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
app.on('activate', function () {
|
|
|
|
// On OS X it's common to re-create a window in the app when the
|
|
|
|
// dock icon is clicked and there are no other windows open.
|
|
|
|
if (mainWindow === null) {
|
|
|
|
createWindow();
|
|
|
|
}
|
|
|
|
});
|