mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 19:53:36 +00:00
Add module subfolder support.
This commit is contained in:
parent
671338425a
commit
e4c54cc655
10
.gitignore
vendored
10
.gitignore
vendored
@ -3,11 +3,5 @@
|
|||||||
!/modules/node_helper
|
!/modules/node_helper
|
||||||
!/modules/node_helper/**
|
!/modules/node_helper/**
|
||||||
|
|
||||||
/modules/*
|
/modules/**
|
||||||
!/modules/calendar
|
!/modules/default/**
|
||||||
!/modules/clock
|
|
||||||
!/modules/compliments
|
|
||||||
!/modules/currentweather
|
|
||||||
!/modules/helloworld
|
|
||||||
!/modules/newsfeed
|
|
||||||
!/modules/weatherforecast
|
|
||||||
|
14
README.md
14
README.md
@ -24,13 +24,13 @@ Things that still have to be implemented or changed.
|
|||||||
##Modules
|
##Modules
|
||||||
|
|
||||||
### Default modules:
|
### Default modules:
|
||||||
- [**Clock**](modules/clock)
|
- [**Clock**](modules/default/clock)
|
||||||
- [**Calendar**](modules/calendar)
|
- [**Calendar**](modules/default/calendar)
|
||||||
- [**Current Weather**](modules/currentweather)
|
- [**Current Weather**](modules/default/currentweather)
|
||||||
- [**Weather Forecast**](modules/weatherforecast)
|
- [**Weather Forecast**](modules/default/weatherforecast)
|
||||||
- [**News Feed**](modules/newsfeed)
|
- [**News Feed**](modules/default/newsfeed)
|
||||||
- [**Compliments**](modules/compliments)
|
- [**Compliments**](modules/default/compliments)
|
||||||
- [**Hello World**](modules/helloworld)
|
- [**Hello World**](modules/default/helloworld)
|
||||||
|
|
||||||
### 3rd Party Modules:
|
### 3rd Party Modules:
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
<script type="text/javascript" src="js/defaults.js"></script>
|
<script type="text/javascript" src="js/defaults.js"></script>
|
||||||
<script type="text/javascript" src="config/config.js"></script>
|
<script type="text/javascript" src="config/config.js"></script>
|
||||||
<script type="text/javascript" src="vendor/vendor.js"></script>
|
<script type="text/javascript" src="vendor/vendor.js"></script>
|
||||||
|
<script type="text/javascript" src="modules/default/defaultmodules.js"></script>
|
||||||
<script type="text/javascript" src="js/logger.js"></script>
|
<script type="text/javascript" src="js/logger.js"></script>
|
||||||
<script type="text/javascript" src="js/class.js"></script>
|
<script type="text/javascript" src="js/class.js"></script>
|
||||||
<script type="text/javascript" src="js/module.js"></script>
|
<script type="text/javascript" src="js/module.js"></script>
|
||||||
|
@ -6,7 +6,7 @@ const fs = require('fs');
|
|||||||
const Server = require(__dirname + '/server.js');
|
const Server = require(__dirname + '/server.js');
|
||||||
const spawn = require('child_process').spawn;
|
const spawn = require('child_process').spawn;
|
||||||
const electron = require('electron');
|
const electron = require('electron');
|
||||||
|
const defaultModules = require(__dirname + '/../modules/default/defaultmodules.js');
|
||||||
|
|
||||||
// Config
|
// Config
|
||||||
var config = {};
|
var config = {};
|
||||||
@ -56,8 +56,18 @@ function loadConfig (callback) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadModule(moduleName) {
|
function loadModule(module) {
|
||||||
var helperPath = __dirname + '/../modules/' + moduleName + '/node_helper.js';
|
|
||||||
|
var elements = module.split('/');
|
||||||
|
var moduleName = elements[elements.length - 1];
|
||||||
|
var moduleFolder = __dirname + '/../modules/' + module;
|
||||||
|
|
||||||
|
if (defaultModules.indexOf(moduleName) !== -1) {
|
||||||
|
moduleFolder = __dirname + '/../modules/default/' + module;
|
||||||
|
}
|
||||||
|
|
||||||
|
var helperPath = moduleFolder + '/node_helper.js';
|
||||||
|
|
||||||
var loadModule = true;
|
var loadModule = true;
|
||||||
try {
|
try {
|
||||||
fs.accessSync(helperPath, fs.R_OK);
|
fs.accessSync(helperPath, fs.R_OK);
|
||||||
|
14
js/loader.js
14
js/loader.js
@ -79,12 +79,20 @@ var Loader = (function() {
|
|||||||
var moduleData = modules[m];
|
var moduleData = modules[m];
|
||||||
var module = moduleData.module;
|
var module = moduleData.module;
|
||||||
|
|
||||||
|
var elements = module.split('/');
|
||||||
|
var moduleName = elements[elements.length - 1];
|
||||||
|
var moduleFolder = config.paths.modules + '/' + module;
|
||||||
|
|
||||||
|
if (defaultModules.indexOf(moduleName) !== -1) {
|
||||||
|
moduleFolder = config.paths.modules + '/default/' + module;
|
||||||
|
}
|
||||||
|
|
||||||
moduleFiles.push({
|
moduleFiles.push({
|
||||||
index: m,
|
index: m,
|
||||||
identifier: 'module_' + m + '_' + module,
|
identifier: 'module_' + m + '_' + module,
|
||||||
name: module,
|
name: moduleName,
|
||||||
path: config.paths.modules + '/' + module,
|
path: moduleFolder + '/' ,
|
||||||
file: module + '.js',
|
file: moduleName + '.js',
|
||||||
position: moduleData.position,
|
position: moduleData.position,
|
||||||
header: moduleData.header,
|
header: moduleData.header,
|
||||||
config: moduleData.config,
|
config: moduleData.config,
|
||||||
|
22
modules/default/defaultmodules.js
Normal file
22
modules/default/defaultmodules.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/* Magic Mirror
|
||||||
|
* Default Modules List
|
||||||
|
*
|
||||||
|
* By Michael Teeuw http://michaelteeuw.nl
|
||||||
|
* MIT Licensed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Modules listed below can be loaded without the 'default/' prefix. Omitting the default folder name.
|
||||||
|
|
||||||
|
var defaultModules = [
|
||||||
|
'calendar',
|
||||||
|
'clock',
|
||||||
|
'compliments',
|
||||||
|
'currentweather',
|
||||||
|
'helloworld',
|
||||||
|
'newsfeed',
|
||||||
|
'weatherforecast'
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
/*************** DO NOT EDIT THE LINE BELOW ***************/
|
||||||
|
if (typeof module !== 'undefined') {module.exports = defaultModules;}
|
Loading…
x
Reference in New Issue
Block a user