From 19259b2226665b8ab9b589a395db6567b5f9d0f4 Mon Sep 17 00:00:00 2001 From: David Hiendl Date: Sun, 7 Mar 2021 13:35:46 +0100 Subject: [PATCH] Add .json files to symlinkMods whitelist (#365) --- packages/slave/slave.js | 2 +- test/slave.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/slave/slave.js b/packages/slave/slave.js index 5076d5db..9366c5bc 100755 --- a/packages/slave/slave.js +++ b/packages/slave/slave.js @@ -1465,7 +1465,7 @@ async function symlinkMods(instance, sharedMods) { let instanceModsEntries = new Set(await fs.readdir(instance.path("mods"))); for (let entry of await fs.readdir(sharedMods, { withFileTypes: true })) { if (entry.isFile()) { - if ([".zip", ".dat"].includes(path.extname(entry.name))) { + if ([".zip", ".dat", ".json"].includes(path.extname(entry.name))) { if (!instanceModsEntries.has(entry.name)) { instance.logger.verbose(`linking ${entry.name} from ${sharedMods}`); let target = path.join(sharedMods, entry.name); diff --git a/test/slave.js b/test/slave.js index e54e5a0b..adc75d41 100644 --- a/test/slave.js +++ b/test/slave.js @@ -95,6 +95,7 @@ describe("Slave testing", function() { await fs.outputFile(path.join(testDir, "shared", "mod_a.zip"), "a"); await fs.outputFile(path.join(testDir, "shared", "mod_b.zip"), "b"); await fs.outputFile(path.join(testDir, "shared", "mod.dat"), "c"); + await fs.outputFile(path.join(testDir, "shared", "mod-list.json"), "d"); let instanceConfig = new libConfig.InstanceConfig("slave"); await instanceConfig.init(); @@ -111,6 +112,7 @@ describe("Slave testing", function() { assert.equal(await fs.readFile(instance.path("mods", "mod_a.zip"), "utf-8"), "a"); assert.equal(await fs.readFile(instance.path("mods", "mod_b.zip"), "utf-8"), "b"); assert.equal(await fs.readFile(instance.path("mods", "mod.dat"), "utf-8"), "c"); + assert.equal(await fs.readFile(instance.path("mods", "mod-list.json"), "utf-8"), "d"); assert.equal(await fs.readFile(instance.path("mods", "mod_i.zip"), "utf-8"), "i"); }); @@ -140,6 +142,7 @@ describe("Slave testing", function() { await assert.rejects(fs.lstat(instance.path("mods", "mod_a.zip")), { code: "ENOENT" }); assert.equal(await fs.readFile(instance.path("mods", "mod_b.zip"), "utf-8"), "b"); assert.equal(await fs.readFile(instance.path("mods", "mod.dat"), "utf-8"), "c"); + assert.equal(await fs.readFile(instance.path("mods", "mod-list.json"), "utf-8"), "d"); assert.equal(await fs.readFile(instance.path("mods", "mod_i.zip"), "utf-8"), "i"); }); });