Add better install message on missing nodes

This commit is contained in:
Nick O'Leary
2015-06-17 14:18:47 +01:00
parent 841edbe6fb
commit 3002aead6b
4 changed files with 29 additions and 6 deletions

View File

@@ -26,7 +26,20 @@ var nodes = {
"redis out": {module:"node-red-node-redis"},
"mongodb": {module:"node-red-node-mongodb"},
"mongodb out": {module:"node-red-node-mongodb"}
"mongodb out": {module:"node-red-node-mongodb"},
"serial in": {module:"node-red-node-serialport"},
"serial out": {module:"node-red-node-serialport"},
"serial-port": {module:"node-red-node-serialport"},
"twitter-credentials": {module:"node-red-node-twitter"},
"twitter in": {module:"node-red-node-twitter"},
"twitter out": {module:"node-red-node-twitter"},
"e-mail": {module:"node-red-node-email"},
"e-mail in": {module:"node-red-node-email"},
"feedparse": {module:"node-red-node-feedparser"}
}
module.exports = {

View File

@@ -24,6 +24,7 @@ var log = require("../log");
var events = require("../events");
var redUtil = require("../util");
var storage = null;
var settings = null;
var deprecated = require("./deprecated");
var activeFlow = null;
@@ -40,7 +41,8 @@ events.on('type-registered',function(type) {
});
var flowNodes = module.exports = {
init: function(_storage) {
init: function(_settings, _storage) {
settings = _settings;
storage = _storage;
},
@@ -148,12 +150,20 @@ var flowNodes = module.exports = {
for (var i=0;i<missingTypes.length;i++) {
var type = missingTypes[i];
var info = deprecated.get(type);
var knownUnknowns = 0;
if (info) {
log.info(" - "+missingTypes[i]+" (provided by npm module "+info.module+")")
log.info(" - "+missingTypes[i]+" (provided by npm module "+info.module+")");
knownUnknowns += 1;
} else {
log.info(" - "+missingTypes[i]);
}
}
if (knownUnknowns > 0) {
log.info("To install any of these missing modules, run:");
log.info(" npm install <module name>");
log.info("in the directory:");
log.info(" "+settings.userDir);
}
}
}
},

View File

@@ -54,7 +54,7 @@ function createNode(node,def) {
function init(_settings,storage,app) {
credentials.init(storage,app);
flows.init(storage);
flows.init(_settings,storage);
registry.init(_settings);
}