Update plugin install to try/catch initial instantiation errors

Ryan Blenis committed Dec 3, 2019 at 21:49 UTC bd84dcf7312aea66d61848b9e4aaf2117edc6860
1 file changed +10 -6
pluginHandler.js
+10 -6
@@ -412,12 +412,16 @@ module.exports.pluginHandler = function (parent) {
412 } else {
413 parent.db.updatePlugin(id, { status: 1, version: version_only.name }, func);
414 }
415 - obj.plugins[plugin.shortName] = require(obj.pluginPath + '/' + plugin.shortName + '/' + plugin.shortName + '.js')[plugin.shortName](obj);
416 - obj.exports[plugin.shortName] = obj.plugins[plugin.shortName].exports;
417 - if (typeof obj.plugins[plugin.shortName].server_startup == 'function') obj.plugins[plugin.shortName].server_startup();
418 - var plugin_config = obj.fs.readFileSync(obj.pluginPath + '/' + plugin.shortName + '/config.json');
419 - plugin_config = JSON.parse(plugin_config);
420 - parent.db.updatePlugin(plugin._id, plugin_config);
415 + try {
416 + obj.plugins[plugin.shortName] = require(obj.pluginPath + '/' + plugin.shortName + '/' + plugin.shortName + '.js')[plugin.shortName](obj);
417 + obj.exports[plugin.shortName] = obj.plugins[plugin.shortName].exports;
418 + if (typeof obj.plugins[plugin.shortName].server_startup == 'function') obj.plugins[plugin.shortName].server_startup();
419 + } catch (e) { console.log('Error instantiating new plugin: ', e); }
420 + try {
421 + var plugin_config = obj.fs.readFileSync(obj.pluginPath + '/' + plugin.shortName + '/config.json');
422 + plugin_config = JSON.parse(plugin_config);
423 + parent.db.updatePlugin(plugin._id, plugin_config);
424 + } catch (e) { console.log('Error reading plugin config upon install'); }
425 parent.updateMeshCore();
426 });
427 });