Mercurial > psgxs
view modules.js @ 58:b98e545a94f7 default tip
Always use children instead of tags. Might break something.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Tue, 13 Sep 2011 00:54:55 +0200 |
parents | addbf6bbfaa8 |
children |
line wrap: on
line source
/* * Copyright (C) 2010 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> * * This file is part of PSĜS, a PubSub server written in JavaScript. * * PSĜS is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License. * * PSĜS is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with PSĜS. If not, see <http://www.gnu.org/licenses/>. */ 'use strict'; var modules = exports; var fs = require('fs'); var dir = require('./configuration').pluginsDir; var files = fs.readdirSync(dir); var regex = /^mod_.*\.js/; var Script = process.binding('evals').Script; var fdsq = require('./fdsq'); var sandbox = { process: process, console: console, config: require('./configuration'), Element: require('ltx').Element, uuid: require('uuid'), errors: require('./errors'), forms: require('./forms'), makeError: require('./errors').makeError, notifs: require('./notifs'), NS: require('./namespaces'), require: require, storage: require('./storage'), JID: { toBare: fdsq.toBare, toResource: fdsq.toResource }, exports: {} }; for (var i in files) { var file = files[i]; if (!regex.test(file)) continue; fs.readFile(dir + '/' + file, function(err, data) { if (err) { console.log('Erreur de chargement de module.'); return; } Script.runInNewContext(data, sandbox, dir + '/' + file); var module = sandbox.exports; sandbox.exports = {}; for (var j in module) { if (typeof modules[j] != 'undefined') console.log('WARNING: module '+j+' already loaded.'); modules[j] = module[j]; console.log('Module '+j+' loaded!'); } }); }