var fs = require('fs'),
- _ = require('underscore'),
+ _ = require('lodash'),
WebListener = require('./weblistener.js'),
config = require('./configuration.js'),
- rehash = require('./rehash.js');
+ rehash = require('./rehash.js'),
+ modules = require('./modules.js');
+// Create a plugin interface
+global.modules = new modules.Publisher();
+
+// Register as the active interface
+modules.registerPublisher(global.modules);
+
+// Load any modules in the config
+if (global.config.module_dir) {
+ (global.config.modules || []).forEach(function (module_name) {
+ if (modules.load(global.config.module_dir + module_name + '.js')) {
+ console.log('Module ' + module_name + ' loaded successfuly');
+ } else {
+ console.log('Module ' + module_name + ' failed to load');
+ }
+ });
+}
+
+
+
// Holder for all the connected clients
global.clients = {
// Make sure Kiwi doesn't simply quit on an exception
process.on('uncaughtException', function (e) {
console.log('[Uncaught exception] ' + e);
+ console.log(e.stack);
});