diff --git a/README.md b/README.md index 12657fcd..84fb123b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # MagicMirror V2 -This version of the Magic Mirror software focusses on a modular plugin system. +This version of the Magic Mirror software focusses on a modular plugin system. +To start the software run `npm install && npm start`. #WARNING: THIS VERSION IS IN A VERY EARLY STAGE. IT IS NOT COMPLETED YET. PLEASE USE THE MASTER BRANCH. diff --git a/js/electron.js b/js/electron.js new file mode 100755 index 00000000..c61d238c --- /dev/null +++ b/js/electron.js @@ -0,0 +1,73 @@ +'use strict'; + +//for searching modules +const walk = require('walk'); + +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. + mainWindow = new BrowserWindow({width: 800, height: 600, fullscreen: true, "auto-hide-menu-bar": true, "node-integration": false}); + + // 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; + }); +} + +//Walk module folder and get file names +var module_loader = walk.walk(__dirname + '/../modules', { followLinks: false }); + +//for each file in modules +module_loader.on('file', function(root, stat, next) { + //if file is called node_helper.js load it + if (stat.name == "node_helper.js"){ + require(root + '/' + stat.name); + //Log module name + var module = (root + '/' + stat.name).split("/") + console.log("Started helper script for module " + module[module.length-2] + "."); + } + next(); +}); + +module_loader.on('end', function() { + console.log("All helpers started."); +}); + +// 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(); + } +}); diff --git a/modules/helper_test/node_helper.js b/modules/helper_test/node_helper.js new file mode 100644 index 00000000..ea00fc25 --- /dev/null +++ b/modules/helper_test/node_helper.js @@ -0,0 +1,2 @@ +'use strict'; +console.log("test"); \ No newline at end of file diff --git a/package.json b/package.json new file mode 100755 index 00000000..9df003f5 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "Magic-Mirror", + "version": "2.0.0", + "description": "A modular interface for smart mirrors.", + "main": "js/electron.js", + "scripts": { + "start": "electron js/electron.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/MichMich/MagicMirror.git" + }, + "keywords": [ + "magic mirror", + "smart mirror", + "mirror UI", + "modular" + ], + "author": "Michael Teeuw", + "contributors": "https://github.com/MichMich/MagicMirror/graphs/contributors", + "license": "MIT", + "bugs": { + "url": "https://github.com/MichMich/MagicMirror/issues" + }, + "homepage": "https://github.com/MichMich/MagicMirror#readme", + "devDependencies": { + "electron-prebuilt": "latest" + }, + "dependencies": { + "walk": "latest" + } +}