mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 03:39:55 +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/*
|
||||
!/modules/calendar
|
||||
!/modules/clock
|
||||
!/modules/compliments
|
||||
!/modules/currentweather
|
||||
!/modules/helloworld
|
||||
!/modules/newsfeed
|
||||
!/modules/weatherforecast
|
||||
/modules/**
|
||||
!/modules/default/**
|
||||
|
14
README.md
14
README.md
@ -24,13 +24,13 @@ Things that still have to be implemented or changed.
|
||||
##Modules
|
||||
|
||||
### Default modules:
|
||||
- [**Clock**](modules/clock)
|
||||
- [**Calendar**](modules/calendar)
|
||||
- [**Current Weather**](modules/currentweather)
|
||||
- [**Weather Forecast**](modules/weatherforecast)
|
||||
- [**News Feed**](modules/newsfeed)
|
||||
- [**Compliments**](modules/compliments)
|
||||
- [**Hello World**](modules/helloworld)
|
||||
- [**Clock**](modules/default/clock)
|
||||
- [**Calendar**](modules/default/calendar)
|
||||
- [**Current Weather**](modules/default/currentweather)
|
||||
- [**Weather Forecast**](modules/default/weatherforecast)
|
||||
- [**News Feed**](modules/default/newsfeed)
|
||||
- [**Compliments**](modules/default/compliments)
|
||||
- [**Hello World**](modules/default/helloworld)
|
||||
|
||||
### 3rd Party Modules:
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
<script type="text/javascript" src="js/defaults.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="modules/default/defaultmodules.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/module.js"></script>
|
||||
|
@ -6,7 +6,7 @@ const fs = require('fs');
|
||||
const Server = require(__dirname + '/server.js');
|
||||
const spawn = require('child_process').spawn;
|
||||
const electron = require('electron');
|
||||
|
||||
const defaultModules = require(__dirname + '/../modules/default/defaultmodules.js');
|
||||
|
||||
// Config
|
||||
var config = {};
|
||||
@ -56,8 +56,18 @@ function loadConfig (callback) {
|
||||
}
|
||||
}
|
||||
|
||||
function loadModule(moduleName) {
|
||||
var helperPath = __dirname + '/../modules/' + moduleName + '/node_helper.js';
|
||||
function loadModule(module) {
|
||||
|
||||
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;
|
||||
try {
|
||||
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 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({
|
||||
index: m,
|
||||
identifier: 'module_' + m + '_' + module,
|
||||
name: module,
|
||||
path: config.paths.modules + '/' + module,
|
||||
file: module + '.js',
|
||||
name: moduleName,
|
||||
path: moduleFolder + '/' ,
|
||||
file: moduleName + '.js',
|
||||
position: moduleData.position,
|
||||
header: moduleData.header,
|
||||
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