mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-06-06 12:47:13 +02:00
* msg_network.js: Management of message network modules (start/stop/etc.)
* Minor updates to ES6 in some areas * Better bbs.js startup seq * Better iterator support for loadModulesForCategory() * Start work on loading message network modules & tieing in record() (WIP) * FTN PacketHeader is now a ES6 class * Various FTN utils, e.g. Via line creation
This commit is contained in:
parent
13d5c4d8f4
commit
74f5342997
10 changed files with 388 additions and 96 deletions
|
@ -1,20 +1,22 @@
|
|||
/* jslint node: true */
|
||||
'use strict';
|
||||
|
||||
var Config = require('./config.js').config;
|
||||
var miscUtil = require('./misc_util.js');
|
||||
// ENiGMA½
|
||||
let Config = require('./config.js').config;
|
||||
let miscUtil = require('./misc_util.js');
|
||||
|
||||
var fs = require('fs');
|
||||
var paths = require('path');
|
||||
var _ = require('lodash');
|
||||
var assert = require('assert');
|
||||
// standard/deps
|
||||
let fs = require('fs');
|
||||
let paths = require('path');
|
||||
let _ = require('lodash');
|
||||
let assert = require('assert');
|
||||
let async = require('async');
|
||||
|
||||
// exports
|
||||
exports.loadModuleEx = loadModuleEx;
|
||||
exports.loadModule = loadModule;
|
||||
exports.loadModulesForCategory = loadModulesForCategory;
|
||||
|
||||
|
||||
function loadModuleEx(options, cb) {
|
||||
assert(_.isObject(options));
|
||||
assert(_.isString(options.name));
|
||||
|
@ -44,7 +46,7 @@ function loadModuleEx(options, cb) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Ref configuration, if any, for convience to the module
|
||||
// Ref configuration, if any, for convience to the module
|
||||
mod.runtime = { config : modConfig };
|
||||
|
||||
cb(null, mod);
|
||||
|
@ -63,18 +65,27 @@ function loadModule(name, category, cb) {
|
|||
});
|
||||
}
|
||||
|
||||
function loadModulesForCategory(category, iterator) {
|
||||
var path = Config.paths[category];
|
||||
|
||||
fs.readdir(path, function onFiles(err, files) {
|
||||
function loadModulesForCategory(category, iterator, complete) {
|
||||
|
||||
fs.readdir(Config.paths[category], (err, files) => {
|
||||
if(err) {
|
||||
cb(err);
|
||||
iterator(err);
|
||||
return;
|
||||
}
|
||||
|
||||
var filtered = files.filter(function onFilter(file) { return '.js' === paths.extname(file); });
|
||||
filtered.forEach(function onFile(file) {
|
||||
loadModule(paths.basename(file, '.js'), category, iterator);
|
||||
const jsModules = files.filter(file => {
|
||||
return '.js' === paths.extname(file);
|
||||
});
|
||||
|
||||
async.each(jsModules, (file, next) => {
|
||||
loadModule(paths.basename(file, '.js'), category, (err, mod) => {
|
||||
iterator(err, mod);
|
||||
next();
|
||||
});
|
||||
}, err => {
|
||||
if(complete) {
|
||||
complete(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue