/** * Copyright 2013, 2014 IBM Corp. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. **/ var express = require('express'); var util = require('util'); var when = require('when'); var child_process = require('child_process'); var redNodes = require("./nodes"); var comms = require("./comms"); var storage = require("./storage"); var app = null; var nodeApp = null; var server = null; var settings = null; function init(_server,_settings) { server = _server; settings = _settings; comms.init(_server,_settings); nodeApp = express(); app = express(); if (settings.httpAdminRoot !== false) { require("./api").init(app); } } function start() { var defer = when.defer(); storage.init(settings).then(function() { settings.load(storage).then(function() { console.log("\nWelcome to Node-RED\n===================\n"); if (settings.version) { util.log("[red] Version: "+settings.version); } util.log("[red] Loading palette nodes"); redNodes.init(settings,storage); redNodes.load().then(function() { var i; var nodes = redNodes.getNodeList(); var nodeErrors = nodes.filter(function(n) { return n.err!=null;}); var nodeMissing = nodes.filter(function(n) { return n.module && n.enabled && !n.loaded && !n.err;}); if (nodeErrors.length > 0) { util.log("------------------------------------------"); if (settings.verbose) { for (i=0;i 0) { util.log("[red] Missing node modules:"); var missingModules = {}; for (i=0;i 0) { util.log("[red] Added node types:"); for (var i=0;i