From 677e23d75546ae7f0979f095ec90bd3c6bda6cf0 Mon Sep 17 00:00:00 2001 From: azures04 Date: Sun, 8 Feb 2026 00:52:39 +0100 Subject: [PATCH] Added requirements supports - Added requirements support to make easier the installation of my softs --- .../[productPlatform]/requirements.js | 12 ++++++++++++ services/productsFileService.js | 15 ++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 routes/products/[productName]/[productPlatform]/requirements.js diff --git a/routes/products/[productName]/[productPlatform]/requirements.js b/routes/products/[productName]/[productPlatform]/requirements.js new file mode 100644 index 0000000..ab11332 --- /dev/null +++ b/routes/products/[productName]/[productPlatform]/requirements.js @@ -0,0 +1,12 @@ +const express = require("express") +const productsFileService = require("../../../../services/productsFileService") +const router = express.Router({ mergeParams: true }) + +router.get("/", async (req, res) => { + const { productName, productPlatform } = req.params + await productsFileService.canAccess(productName, productPlatform) + const files = await productsFileService.getRequirementsForPlatform(productName, productPlatform) + return res.status(200).json(files) +}) + +module.exports = router \ No newline at end of file diff --git a/services/productsFileService.js b/services/productsFileService.js index 6ca0986..978f113 100644 --- a/services/productsFileService.js +++ b/services/productsFileService.js @@ -124,11 +124,24 @@ async function getProducts() { return files } +async function getRequirementsForPlatform(productName, platform) { + const fixedPath = path.join(productsDataPath, productName, "files", ".brikcfg") + if (!(await fs.promises.exists(fixedPath))) return [] + + const config = JSON.parse(await fs.promises.readFile(fixedPath, "utf8")) + + const globalReqs = config.requirements?.global || [] + const platformReqs = config.requirements?.[platform] || [] + + return [...globalReqs, ...platformReqs] +} + module.exports = { getFile, canAccess, getProduct, getFileSha1, getProducts, - getProductFiles + getProductFiles, + getRequirementsForPlatform } \ No newline at end of file