diff --git a/client.js b/client.js index a853935e..b31eb381 100644 --- a/client.js +++ b/client.js @@ -25,8 +25,8 @@ const configManager = require("./lib/manager/configManager.js"); var config = require('./config'); var global = {}; -if (!fs.existsSync("./instances/")) { - fs.mkdirSync("instances"); +if (!fs.existsSync(config.instanceDirectory)) { + fs.mkdirSync(config.instanceDirectory); } if (!fs.existsSync("./sharedPlugins/")) { fs.mkdirSync("sharedPlugins"); @@ -35,7 +35,7 @@ if (!fs.existsSync("./sharedMods/")) { fs.mkdirSync("sharedMods"); } const instance = process.argv[3]; -const instancedirectory = './instances/' + instance; +const instancedirectory = config.instanceDirectory + '/' + instance; const command = process.argv[2]; // Set the process title, shows up as the title of the CMD window on windows @@ -116,7 +116,7 @@ if (!command || command == "help" || command == "--help") { console.error("node client.js manage"); process.exit(1); } else if (command == "list") { - let instanceNames = fileOps.getDirectoriesSync("./instances/"); + let instanceNames = fileOps.getDirectoriesSync(config.instanceDirectory); instanceNames.unshift("Name:"); let longestInstanceName = 0; // determine longest instance name @@ -139,7 +139,7 @@ if (!command || command == "help" || command == "--help") { if(instance.includes("Name:")){ factorioPort = "Port:" } else { - factorioPort = require("./instances/"+instance+"/config").factorioPort; + factorioPort = require(config.instanceDirectory+"/"+instance+"/config").factorioPort; } factorioPorts.push(factorioPort); }); @@ -224,8 +224,8 @@ if (!command || command == "help" || command == "--help") { if (!process.argv[3]) { console.error("Usage: node client.js delete [instance]"); process.exit(1); - } else if (typeof process.argv[3] == "string" && fs.existsSync("./instances/" + process.argv[3]) && process.argv[3] != "/" && process.argv[3] != "") { - fileOps.deleteFolderRecursiveSync("./instances/" + process.argv[3]); + } else if (typeof process.argv[3] == "string" && fs.existsSync(config.instanceDirectory+"/" + process.argv[3]) && process.argv[3] != "/" && process.argv[3] != "") { + fileOps.deleteFolderRecursiveSync(config.instanceDirectory+"/" + process.argv[3]); console.log("Deleted instance " + process.argv[3]); process.exit(0); } else { @@ -265,7 +265,7 @@ if (!command || command == "help" || command == "--help") { // fs.symlinkSync('../../../sharedMods', instancedirectory + "/mods", 'junction') // This is broken because it can only take a file as first argument, not a folder fs.writeFileSync(instancedirectory + "/config.ini", "[path]\r\n\ read-data=__PATH__executable__/../../data\r\n\ -write-data=__PATH__executable__/../../../instances/" + instance + "\r\n\ +write-data=__PATH__executable__/../../../"+config.instanceDirectory+"/" + instance + "\r\n\ "); // this line is probably not needed anymore but Im not gonna remove it @@ -688,7 +688,7 @@ function instanceManagement() { } }); var form = req.form(); - form.append('file', fs.createReadStream("./instances/"+instance+"/mods/"+mod)); + form.append('file', fs.createReadStream(config.instanceDirectory+"/"+instance+"/mods/"+mod)); } else { console.log("Not sending mod: " + mod + " to master because config.uploadModsToMaster is not enabled") } @@ -973,7 +973,7 @@ function hashMods(instanceName, callback) { } let hashedMods = []; /*let mods = fs.readdirSync("./sharedMods/")*/ - let instanceMods = fs.readdirSync("./instances/"+instanceName+"/mods/"); + let instanceMods = fs.readdirSync(config.instanceDirectory+"/"+instanceName+"/mods/"); if(instanceMods.length == 0){ callback({}); // there are no mods installed, return an empty object } @@ -983,7 +983,7 @@ function hashMods(instanceName, callback) { } } for(let i=0; i { if(instance && instances.includes(instance)){ - factorioAPI.init(false, 'instances/'+instance+'/instanceMods', 'instances/'+instance+'/saves', config.factorio_version); + factorioAPI.init(false, config.instanceDirectory+'/'+instance+'/instanceMods', config.instanceDirectory+'/'+instance+'/saves', config.factorio_version); factorioAPI.authenticate({ username: config.username, token: config.token, @@ -134,7 +134,7 @@ module.exports.addMod = function(term, instance){ if(instance == "shared"){ // modDirectory has to end in / var modDirectory = "sharedMods/"; } else { - var modDirectory = "instances/"+instance+"/instanceMods/"; + var modDirectory = config.instanceDirectory+"/"+instance+"/instanceMods/"; } if(term && term.length > 0){ if(term.includes("mods.factorio.com/mods/")){ // https://mods.factorio.com/mods/Danielv123/ChooChoo @@ -210,7 +210,7 @@ module.exports.removeMod = function removeMod(term, instance, force = false){ if(instance == "shared"){ // modDirectory has to end in / var modDirectory = "sharedMods/"; } else { - var modDirectory = "instances/"+instance+"/instanceMods/"; + var modDirectory = config.instanceDirectory+"/"+instance+"/instanceMods/"; } if(term && typeof term == "string" && term.length > 0){ let mods = fs.readdirSync(modDirectory);