From a31778c7ff7a0d6b2b03b4123b934f3856c9690a Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Sun, 1 Sep 2019 12:38:37 +0200 Subject: [PATCH] Remove unused config parameter to pluginManager Remove the unused library initialization parameter config to pluginManager and reorganize pluginManager to no longer be defined by a function. --- client.js | 3 +- lib/manager/pluginManager.js | 205 ++++++++++++++------------- master.js | 2 +- sharedPlugins/serverManager/index.js | 2 +- 4 files changed, 110 insertions(+), 102 deletions(-) diff --git a/client.js b/client.js index 283fbd83..6fa9a1c9 100644 --- a/client.js +++ b/client.js @@ -18,6 +18,7 @@ const objectOps = require("lib/objectOps.js"); const fileOps = require("lib/fileOps"); const stringUtils = require("lib/stringUtils.js"); const configManager = require("lib/manager/configManager.js"); +const pluginManager = require("lib/manager/pluginManager"); const hashFile = require('lib/hash').hashFile; console.warn(` @@ -235,7 +236,6 @@ if (!command || command == "help" || command == "--help") { } } else if(tool == "plugins"){ (async function(){try{ - const pluginManager = require("lib/manager/pluginManager.js")(config); if(action == "list"){ await pluginManager.listPlugins(); } else if(action == "add" || action == "install" || action == "download"){ @@ -587,7 +587,6 @@ async function instanceManagement(instanceconfig) { setInterval(B=> socket.emit("heartbeat"), 10000); // load plugins and execute onLoad event - const pluginManager = require("lib/manager/pluginManager.js")(config); let pluginsToLoad = await pluginManager.getPlugins(); let plugins = []; diff --git a/lib/manager/pluginManager.js b/lib/manager/pluginManager.js index 7907d65d..f0d03ca3 100644 --- a/lib/manager/pluginManager.js +++ b/lib/manager/pluginManager.js @@ -3,114 +3,123 @@ const path = require("path"); const git = require("simple-git")("./sharedPlugins"); -module.exports = function(config){ - if(!config) config = require("./../../config"); - - return { - listPlugins: async function(){ - let plugins = await this.getPlugins(); - plugins.forEach(plug => { - console.log(`${plug.name}`.padEnd(22).substr(0,22)+` - ${plug.description}`.substr(0,80-22)); - }); - }, - getPlugins: async function(){ - let directories = await fs.readdir("./sharedPlugins"); - let returnArray = []; - for(let i in directories){ - let dir = directories[i]; - let pluginContents = await fs.readdir(path.join("./sharedPlugins", dir)); - // console.log(pluginContents) - if(pluginContents.includes("config.js") || pluginContents.includes("config.json")){ - try{ - var pluginConfig = require(path.join("./../../sharedPlugins", dir, "config")); - pluginConfig.pluginPath = path.join("./sharedPlugins", dir); - }catch(e){ - console.log(e) - } - - // check if plugin is enabled - try{ - await fs.stat(path.join(pluginConfig.pluginPath, "DISABLED")) - pluginConfig.enabled = false; - }catch(e){ - pluginConfig.enabled = true; - } - returnArray.push(pluginConfig); - } +async function listPlugins() { + let plugins = await this.getPlugins(); + plugins.forEach(plug => { + console.log(`${plug.name}`.padEnd(22).substr(0,22)+` - ${plug.description}`.substr(0,80-22)); + }); +} + +async function getPlugins() { + let directories = await fs.readdir("./sharedPlugins"); + let returnArray = []; + for(let i in directories){ + let dir = directories[i]; + let pluginContents = await fs.readdir(path.join("./sharedPlugins", dir)); + // console.log(pluginContents) + if(pluginContents.includes("config.js") || pluginContents.includes("config.json")){ + try{ + var pluginConfig = require(path.join("./../../sharedPlugins", dir, "config")); + pluginConfig.pluginPath = path.join("./sharedPlugins", dir); + }catch(e){ + console.log(e) } - return returnArray; - }, - addPlugin: function(path){ - return new Promise((resolve, reject) => { - if(path.includes("git")){ // we are decently sure this is a git repo - git.clone(path, data => resolve(data)) - } - }); - }, - removePlugin: async function(name){ - let plugins = await this.getPlugins(); - for(let i in plugins){ - let plug = plugins[i]; - if(plug.name.includes(name)){ - // console.log(`Removing plugin ${plug.name}`); - await fs.remove(plug.pluginPath); - return { - ok:true, - msg:`Deleted plugin ${plug.name}` - } - } + + // check if plugin is enabled + try{ + await fs.stat(path.join(pluginConfig.pluginPath, "DISABLED")) + pluginConfig.enabled = false; + }catch(e){ + pluginConfig.enabled = true; } + returnArray.push(pluginConfig); + } + } + return returnArray; +} + +function addPlugin(path) { + return new Promise((resolve, reject) => { + if(path.includes("git")){ // we are decently sure this is a git repo + git.clone(path, data => resolve(data)) + } + }); +} + +async function removePlugin(name) { + let plugins = await this.getPlugins(); + for(let i in plugins){ + let plug = plugins[i]; + if(plug.name.includes(name)){ + // console.log(`Removing plugin ${plug.name}`); + await fs.remove(plug.pluginPath); return { - ok:false, - msg:`Plugin matching "${name}" not found`, - } - }, - enablePlugin: async function(name, instance){ - let plugins = await this.getPlugins(); - let plugin = plugins[findInArray("name", name, plugins)[0]]; - if(plugin){ - let files = await fs.readdir(plugin.pluginPath); - if(files.includes("DISABLED")){ - await fs.unlink(path.join(plugin.pluginPath, "DISABLED")); - return { - ok:true, - msg:`Globally enabled plugin ${name}`, - } - } else { - return { - ok:true, - msg:`Plugin ${name} already enabled`, - } - } - } else { - return { - ok:false, - msg:`Found no excact match for plugin ${name}`, - } - } - }, - disablePlugin: async function(name, instance){ - let plugins = await this.getPlugins(); - let plugin = plugins[findInArray("name", name, plugins)[0]]; - if(plugin){ - await fs.writeFile(path.join(plugin.pluginPath, "DISABLED"), ""); - return { - ok:true, - msg:`Plugin ${name} is now disabled on this host`, - } - } else { - return { - ok:false, - msg:`Found no excact match for plugin ${name}`, - } + ok:true, + msg:`Deleted plugin ${plug.name}` } } } + return { + ok:false, + msg:`Plugin matching "${name}" not found`, + } } -function findInArray(key, value, array){ + +async function enablePlugin(name, instance) { + let plugins = await this.getPlugins(); + let plugin = plugins[findInArray("name", name, plugins)[0]]; + if(plugin){ + let files = await fs.readdir(plugin.pluginPath); + if(files.includes("DISABLED")){ + await fs.unlink(path.join(plugin.pluginPath, "DISABLED")); + return { + ok:true, + msg:`Globally enabled plugin ${name}`, + } + } else { + return { + ok:true, + msg:`Plugin ${name} already enabled`, + } + } + } else { + return { + ok:false, + msg:`Found no excact match for plugin ${name}`, + } + } +} + +async function disablePlugin(name, instance) { + let plugins = await this.getPlugins(); + let plugin = plugins[findInArray("name", name, plugins)[0]]; + if(plugin){ + await fs.writeFile(path.join(plugin.pluginPath, "DISABLED"), ""); + return { + ok:true, + msg:`Plugin ${name} is now disabled on this host`, + } + } else { + return { + ok:false, + msg:`Found no excact match for plugin ${name}`, + } + } +} + +function findInArray(key, value, array) { let indexes = []; for(let i in array){ if(array[i][key] && array[i][key] === value) indexes.push(i); } return indexes; } + +module.exports = { + listPlugins, + getPlugins, + addPlugin, + removePlugin, + enablePlugin, + disablePlugin, +}; diff --git a/master.js b/master.js index 4abb2779..0e7467bc 100644 --- a/master.js +++ b/master.js @@ -33,6 +33,7 @@ let config = {}; // homebrew modules const generateSSLcert = require("lib/generateSSLcert"); const getFactorioLocale = require("lib/getFactorioLocale"); +const pluginManager = require("lib/manager/pluginManager.js"); const database = require("lib/database"); // homemade express middleware for token auth @@ -800,7 +801,6 @@ async function pluginManagement(){ } async function getPlugins(){ - const pluginManager = require("lib/manager/pluginManager.js")(config); let plugins = []; let pluginsToLoad = await pluginManager.getPlugins(); for(let i = 0; i < pluginsToLoad.length; i++){ diff --git a/sharedPlugins/serverManager/index.js b/sharedPlugins/serverManager/index.js index 065033ee..82202ceb 100644 --- a/sharedPlugins/serverManager/index.js +++ b/sharedPlugins/serverManager/index.js @@ -9,7 +9,7 @@ module.exports = class remoteCommands { this.messageInterface = messageInterface; this.config = mergedConfig; this.socket = extras.socket; - const pluginManager = require("lib/manager/pluginManager.js")(this.config); + const pluginManager = require("lib/manager/pluginManager.js"); const configManager = require("lib/manager/configManager.js"); // const modManager = require("lib/manager/modManager.js")(this.config); this.socket.on("hello", () => {