Merge branch 'master' into acp-paper

This commit is contained in:
psychobunny
2015-08-20 11:39:20 -04:00
4 changed files with 24 additions and 13 deletions

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "0.7.3-dev",
"version": "0.7.3",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -45,7 +45,7 @@
"nodebb-plugin-emoji-extended": "0.4.9",
"nodebb-plugin-markdown": "4.0.4",
"nodebb-plugin-mentions": "1.0.0",
"nodebb-plugin-soundpack-default": "0.1.2",
"nodebb-plugin-soundpack-default": "0.1.3",
"nodebb-plugin-spam-be-gone": "0.4.1",
"nodebb-rewards-essentials": "0.0.3",
"nodebb-theme-lavender": "1.0.49",

View File

@@ -29,7 +29,7 @@ module.exports = function(Meta) {
var pkgData = JSON.parse(pkgData),
ok = semver.satisfies(pkgData.version, pkg.dependencies[module]);
if (ok || pkgData._resolved.indexOf('//github.com') != -1) {
if (ok || (pkgData._resolved && pkgData._resolved.indexOf('//github.com') !== -1)) {
next(true);
} else {
process.stdout.write('[' + 'outdated'.yellow + '] ' + module.bold + ' v' + pkgData.version + ', requires ' + pkg.dependencies[module] + '\n')

View File

@@ -31,6 +31,7 @@ var fs = require('fs'),
Plugins.clientScripts = [];
Plugins.customLanguages = [];
Plugins.libraryPaths = [];
Plugins.versionWarning = [];
Plugins.initialized = false;
@@ -74,6 +75,7 @@ var fs = require('fs'),
Plugins.libraries = {};
Plugins.loadedHooks = {};
Plugins.staticDirs = {};
Plugins.versionWarning = [];
Plugins.cssFiles.length = 0;
Plugins.lessFiles.length = 0;
Plugins.clientScripts.length = 0;
@@ -106,6 +108,16 @@ var fs = require('fs'),
});
},
function(next) {
// If some plugins are incompatible, throw the warning here
if (Plugins.versionWarning.length) {
process.stdout.write('\n');
winston.warn('[plugins/load] The following plugins may not be compatible with your version of NodeBB. This may cause unintended behaviour or crashing. In the event of an unresponsive NodeBB caused by this plugin, run `./nodebb reset -p PLUGINNAME` to disable it.');
for(var x=0,numPlugins=Plugins.versionWarning.length;x<numPlugins;x++) {
process.stdout.write(' * '.yellow + Plugins.versionWarning[x].reset + '\n');
}
process.stdout.write('\n');
}
Object.keys(Plugins.loadedHooks).forEach(function(hook) {
var hooks = Plugins.loadedHooks[hook];
hooks = hooks.sort(function(a, b) {

View File

@@ -20,7 +20,7 @@ module.exports = function(Plugins) {
return callback(pluginPath.match('nodebb-theme') ? null : err);
}
versionWarning(pluginData);
checkVersion(pluginData);
async.parallel([
function(next) {
@@ -53,20 +53,19 @@ module.exports = function(Plugins) {
});
};
function versionWarning(pluginData) {
function display() {
process.stdout.write('\n');
winston.warn('[plugins/' + pluginData.id + '] This plugin may not be compatible with your version of NodeBB. This may cause unintended behaviour or crashing.');
winston.warn('[plugins/' + pluginData.id + '] In the event of an unresponsive NodeBB caused by this plugin, run ./nodebb reset -p ' + pluginData.id + '.');
process.stdout.write('\n');
function checkVersion(pluginData) {
function add() {
if (Plugins.versionWarning.indexOf(pluginData.id) === -1) {
Plugins.versionWarning.push(pluginData.id);
}
}
if (pluginData.nbbpm && pluginData.nbbpm.compatibility && semver.validRange(pluginData.nbbpm.compatibility)) {
if (!semver.gtr(nconf.get('version'), pluginData.nbbpm.compatibility)) {
display();
if (!semver.satisfies(nconf.get('version'), pluginData.nbbpm.compatibility)) {
add();
}
} else {
display();
add();
}
}