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:
Julian Lam
2015-08-20 11:01:59 -04:00
parent 23bb45b480
commit e382dcab13
2 changed files with 20 additions and 9 deletions

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.satisfies(nconf.get('version'), pluginData.nbbpm.compatibility)) {
display();
add();
}
} else {
display();
add();
}
}