mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-09 23:45:45 +01:00
Reduce verbosity of plugin incompatibility errors
Instead of showing a 4-5 line warning for each potentially incompatible plugin, we'll show the warning and then a list of plugins.
This commit is contained in:
@@ -31,6 +31,7 @@ var fs = require('fs'),
|
|||||||
Plugins.clientScripts = [];
|
Plugins.clientScripts = [];
|
||||||
Plugins.customLanguages = [];
|
Plugins.customLanguages = [];
|
||||||
Plugins.libraryPaths = [];
|
Plugins.libraryPaths = [];
|
||||||
|
Plugins.versionWarning = [];
|
||||||
|
|
||||||
Plugins.initialized = false;
|
Plugins.initialized = false;
|
||||||
|
|
||||||
@@ -74,6 +75,7 @@ var fs = require('fs'),
|
|||||||
Plugins.libraries = {};
|
Plugins.libraries = {};
|
||||||
Plugins.loadedHooks = {};
|
Plugins.loadedHooks = {};
|
||||||
Plugins.staticDirs = {};
|
Plugins.staticDirs = {};
|
||||||
|
Plugins.versionWarning = [];
|
||||||
Plugins.cssFiles.length = 0;
|
Plugins.cssFiles.length = 0;
|
||||||
Plugins.lessFiles.length = 0;
|
Plugins.lessFiles.length = 0;
|
||||||
Plugins.clientScripts.length = 0;
|
Plugins.clientScripts.length = 0;
|
||||||
@@ -106,6 +108,16 @@ var fs = require('fs'),
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
function(next) {
|
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) {
|
Object.keys(Plugins.loadedHooks).forEach(function(hook) {
|
||||||
var hooks = Plugins.loadedHooks[hook];
|
var hooks = Plugins.loadedHooks[hook];
|
||||||
hooks = hooks.sort(function(a, b) {
|
hooks = hooks.sort(function(a, b) {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ module.exports = function(Plugins) {
|
|||||||
return callback(pluginPath.match('nodebb-theme') ? null : err);
|
return callback(pluginPath.match('nodebb-theme') ? null : err);
|
||||||
}
|
}
|
||||||
|
|
||||||
versionWarning(pluginData);
|
checkVersion(pluginData);
|
||||||
|
|
||||||
async.parallel([
|
async.parallel([
|
||||||
function(next) {
|
function(next) {
|
||||||
@@ -53,20 +53,19 @@ module.exports = function(Plugins) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function versionWarning(pluginData) {
|
function checkVersion(pluginData) {
|
||||||
function display() {
|
function add() {
|
||||||
process.stdout.write('\n');
|
if (Plugins.versionWarning.indexOf(pluginData.id) === -1) {
|
||||||
winston.warn('[plugins/' + pluginData.id + '] This plugin may not be compatible with your version of NodeBB. This may cause unintended behaviour or crashing.');
|
Plugins.versionWarning.push(pluginData.id);
|
||||||
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');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pluginData.nbbpm && pluginData.nbbpm.compatibility && semver.validRange(pluginData.nbbpm.compatibility)) {
|
if (pluginData.nbbpm && pluginData.nbbpm.compatibility && semver.validRange(pluginData.nbbpm.compatibility)) {
|
||||||
if (!semver.satisfies(nconf.get('version'), pluginData.nbbpm.compatibility)) {
|
if (!semver.satisfies(nconf.get('version'), pluginData.nbbpm.compatibility)) {
|
||||||
display();
|
add();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
display();
|
add();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user