Skip to content

Commit 49e814b

Browse files
committed
use variable defaultModulesDir
1 parent 621337c commit 49e814b

File tree

15 files changed

+37
-17
lines changed

15 files changed

+37
-17
lines changed

defaultmodules/updatenotification/node_helper.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const fs = require("node:fs");
22
const path = require("node:path");
33
const NodeHelper = require("node_helper");
44

5-
const defaultModules = require(`${global.root_path}/defaultmodules/defaultmodules`);
5+
const defaultModules = require(`${global.root_path}/${global.defaultModulesDir}/defaultmodules`);
66
const GitHelper = require("./git_helper");
77
const UpdateHelper = require("./update_helper");
88

js/app.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ global.root_path = path.resolve(`${__dirname}/../`);
1313
const Server = require(`${__dirname}/server`);
1414
const Utils = require(`${__dirname}/utils`);
1515

16-
const defaultModules = require(`${global.root_path}/defaultmodules/defaultmodules`);
1716
// used to control fetch timeout for node_helpers
1817
const { setGlobalDispatcher, Agent } = require("undici");
1918
const { getEnvVarsAsObj, getConfigFilePath } = require("#server_functions");
@@ -57,6 +56,7 @@ process.on("uncaughtException", function (err) {
5756
function App () {
5857
let nodeHelpers = [];
5958
let httpServer;
59+
let defaultModules;
6060

6161
/**
6262
* Loads the config file. Combines it with the defaults and returns the config
@@ -185,7 +185,7 @@ function App () {
185185
let moduleFolder = path.resolve(`${global.root_path}/${env.modulesDir}`, module);
186186

187187
if (defaultModules.includes(moduleName)) {
188-
const defaultModuleFolder = path.resolve(`${global.root_path}/defaultmodules/`, module);
188+
const defaultModuleFolder = path.resolve(`${global.root_path}/${global.defaultModulesDir}/`, module);
189189
if (!global.mmTestMode) {
190190
moduleFolder = defaultModuleFolder;
191191
} else {
@@ -291,6 +291,9 @@ function App () {
291291
this.start = async function () {
292292
config = await loadConfig();
293293

294+
global.defaultModulesDir = config.defaultModulesDir;
295+
defaultModules = require(`${global.root_path}/${global.defaultModulesDir}/defaultmodules`);
296+
294297
Log.setLogLevel(config.logLevel);
295298

296299
// get the used module positions

js/defaults.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ const defaults = {
2020
zoom: 1,
2121
customCss: "css/custom.css",
2222
foreignModulesDir: "modules",
23+
defaultModulesDir: "defaultmodules",
2324
// httpHeaders used by helmet, see https://helmetjs.github.io/. You can add other/more object values by overriding this in config.js,
2425
// e.g. you need to add `frameguard: false` for embedding MagicMirror in another website, see https://github.com/MagicMirrorOrg/MagicMirror/issues/2847
2526
httpHeaders: { contentSecurityPolicy: false, crossOriginOpenerPolicy: false, crossOriginEmbedderPolicy: false, crossOriginResourcePolicy: false, originAgentCluster: false },

js/loader.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const Loader = (function () {
1717
const getEnvVarsFromConfig = function () {
1818
return {
1919
modulesDir: config.foreignModulesDir || "modules",
20+
defaultModulesDir: config.defaultModulesDir || "defaultmodules",
2021
customCss: config.customCss || "css/custom.css"
2122
};
2223
};
@@ -103,7 +104,7 @@ const Loader = (function () {
103104
let moduleFolder = `${envVars.modulesDir}/${module}`;
104105

105106
if (defaultModules.indexOf(moduleName) !== -1) {
106-
const defaultModuleFolder = `defaultmodules/${module}`;
107+
const defaultModuleFolder = `${envVars.defaultModulesDir}/${module}`;
107108
if (window.name !== "jsdom") {
108109
moduleFolder = defaultModuleFolder;
109110
} else {

js/server_functions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ function getUserAgent () {
162162
* @returns {object} environment variables key: values
163163
*/
164164
function getEnvVarsAsObj () {
165-
const obj = { modulesDir: `${config.foreignModulesDir}`, customCss: `${config.customCss}` };
165+
const obj = { modulesDir: `${config.foreignModulesDir}`, defaultModulesDir: `${config.defaultModulesDir}`, customCss: `${config.customCss}` };
166166
if (process.env.MM_MODULES_DIR) {
167167
obj.modulesDir = process.env.MM_MODULES_DIR.replace(`${global.root_path}/`, "");
168168
}

tests/e2e/modules/newsfeed_spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ describe("Newsfeed module", () => {
8080

8181
describe("Newsfeed module located in config directory", () => {
8282
beforeAll(() => {
83-
fs.cpSync(`${global.root_path}/defaultmodules/newsfeed`, `${global.root_path}/config/newsfeed`, { recursive: true });
83+
fs.cpSync(`${global.root_path}/${global.defaultModulesDir}/newsfeed`, `${global.root_path}/config/newsfeed`, { recursive: true });
8484
process.env.MM_MODULES_DIR = "config";
8585
});
8686

tests/unit/functions/updatenotification_spec.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ async function createGitHelper (fsStatSyncMockRef, loggerMockRef, execShellSpyRe
1919

2020
vi.doMock("logger", () => loggerMockRef.current);
2121

22-
const gitHelperModule = await import("../../../defaultmodules/updatenotification/git_helper");
22+
const defaults = await import("../../../js/defaults");
23+
const gitHelperModule = await import(`../../../${defaults.defaultModulesDir}/updatenotification/git_helper`);
2324
const GitHelper = gitHelperModule.default || gitHelperModule;
2425
const instance = new GitHelper();
2526
execShellSpyRef.current = vi.spyOn(instance, "execShell");

tests/unit/global_vars/defaults_modules_spec.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
const fs = require("node:fs");
22
const path = require("node:path");
3+
const defaults = require("../../../js/defaults");
34

45
const root_path = path.join(__dirname, "../../..");
56

67
describe("Default modules set in defaultmodules/defaultmodules.js", () => {
7-
const expectedDefaultModules = require(`${root_path}/defaultmodules/defaultmodules`);
8+
const expectedDefaultModules = require(`${root_path}/${defaults.defaultModulesDir}/defaultmodules`);
89

910
for (const defaultModule of expectedDefaultModules) {
1011
it(`contains a folder for defaultmodules/${defaultModule}"`, () => {

tests/unit/modules/default/calendar/calendar_fetcher_utils_bad_rrule.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
global.moment = require("moment-timezone");
22

3-
const CalendarFetcherUtils = require("../../../../../defaultmodules/calendar/calendarfetcherutils");
3+
const defaults = require("../../../js/defaults");
4+
5+
const CalendarFetcherUtils = require(`../../../../../${defaults.defaultModulesDir}/calendar/calendarfetcherutils`);
46

57
describe("Calendar fetcher utils test", () => {
68
const defaultConfig = {

tests/unit/modules/default/calendar/calendar_fetcher_utils_spec.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ global.moment = require("moment-timezone");
22

33
const ical = require("node-ical");
44
const moment = require("moment-timezone");
5-
const CalendarFetcherUtils = require("../../../../../defaultmodules/calendar/calendarfetcherutils");
5+
const defaults = require("../../../../../js/defaults");
6+
7+
const CalendarFetcherUtils = require(`../../../../../${defaults.defaultModulesDir}/calendar/calendarfetcherutils`);
68

79
describe("Calendar fetcher utils test", () => {
810
const defaultConfig = {

0 commit comments

Comments
 (0)