diff --git a/CHANGELOG.md b/CHANGELOG.md index 59c20869..348fcc10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ planned for 2025-04-01 - [newsfeed] Add specific ignoreOlderThan value (override) per feed (#3360) - [weather] Added option Humidity to hourly View - [weather] Added option to hide hourly entries that are Zero, hiding the entire column if empty. +- [updatenotification] Added option to iterate over modules directory instead using modules defined in `config.js` (#3739) ### Changed diff --git a/modules/default/updatenotification/node_helper.js b/modules/default/updatenotification/node_helper.js index c78f413d..88264f7c 100644 --- a/modules/default/updatenotification/node_helper.js +++ b/modules/default/updatenotification/node_helper.js @@ -1,3 +1,5 @@ +const fs = require("node:fs"); +const path = require("node:path"); const NodeHelper = require("node_helper"); const defaultModules = require("../defaultmodules"); const GitHelper = require("./git_helper"); @@ -14,8 +16,23 @@ module.exports = NodeHelper.create({ gitHelper: new GitHelper(), updateHelper: null, + getModules (modules) { + if (this.config.useModulesFromConfig) { + return modules; + } else { + // get modules from modules-directory + const moduleDir = path.normalize(`${__dirname}/../../`); + const getDirectories = (source) => { + return fs.readdirSync(source, { withFileTypes: true }) + .filter((dirent) => dirent.isDirectory() && dirent.name !== "default") + .map((dirent) => dirent.name); + }; + return getDirectories(moduleDir); + } + }, + async configureModules (modules) { - for (const moduleName of modules) { + for (const moduleName of this.getModules(modules)) { if (!this.ignoreUpdateChecking(moduleName)) { await this.gitHelper.add(moduleName); } diff --git a/modules/default/updatenotification/updatenotification.js b/modules/default/updatenotification/updatenotification.js index a18bc4db..f3d661fc 100644 --- a/modules/default/updatenotification/updatenotification.js +++ b/modules/default/updatenotification/updatenotification.js @@ -6,7 +6,8 @@ Module.register("updatenotification", { sendUpdatesNotifications: false, updates: [], updateTimeout: 2 * 60 * 1000, // max update duration - updateAutorestart: false // autoRestart MM when update done ? + updateAutorestart: false, // autoRestart MM when update done ? + useModulesFromConfig: true // if `false` iterate over modules directory }, suspended: false,