refactor: run NodeCG from lib/scoreko-dev for Node 24 migration

This commit is contained in:
Pandipipas
2026-03-02 22:53:22 +01:00
parent 162b0685c6
commit eae612cb38
10 changed files with 126 additions and 140 deletions
+22 -10
View File
@@ -4,7 +4,7 @@ import net from "node:net";
import path from "node:path";
const cwd = process.cwd();
const nodecgRootPath = path.resolve(cwd, "lib", "nodecg");
const scorekoRootPath = path.resolve(cwd, "lib", "scoreko-dev");
const checks = [];
@@ -36,19 +36,31 @@ function parseIntInRange(name, fallback, min, max) {
}
function checkNodecgInstall() {
const indexPath = path.join(nodecgRootPath, "index.js");
const bundleName = (process.env.NODECG_BUNDLE_NAME ?? "scoreko-dev").trim();
const bundlePath = path.join(nodecgRootPath, "bundles", bundleName);
const packageJsonPath = path.join(scorekoRootPath, "package.json");
const nodecgCliPath = path.join(
scorekoRootPath,
"node_modules",
".bin",
process.platform === "win32" ? "nodecg.cmd" : "nodecg",
);
const bundleAssetPaths = ["dashboard", "graphics", "extension", "extensions"].map((folder) =>
path.join(scorekoRootPath, folder),
);
addCheck(fs.existsSync(nodecgRootPath), "NodeCG root", nodecgRootPath);
addCheck(fs.existsSync(indexPath), "NodeCG index.js", indexPath);
addCheck(fs.existsSync(bundlePath), `Bundle '${bundleName}'`, bundlePath);
addCheck(fs.existsSync(scorekoRootPath), "Scoreko root", scorekoRootPath);
addCheck(fs.existsSync(packageJsonPath), "scoreko-dev package.json", packageJsonPath);
addCheck(fs.existsSync(nodecgCliPath), "NodeCG CLI", nodecgCliPath);
addCheck(
bundleAssetPaths.some((candidatePath) => fs.existsSync(candidatePath)),
"scoreko-dev bundle assets",
`Expected one of: ${bundleAssetPaths.join(", ")}`,
);
try {
fs.accessSync(nodecgRootPath, fs.constants.R_OK | fs.constants.W_OK);
addCheck(true, "lib/nodecg permissions", "Read/write OK");
fs.accessSync(scorekoRootPath, fs.constants.R_OK | fs.constants.W_OK);
addCheck(true, "lib/scoreko-dev permissions", "Read/write OK");
} catch {
addCheck(false, "lib/nodecg permissions", "No read/write permissions in lib/nodecg");
addCheck(false, "lib/scoreko-dev permissions", "No read/write permissions in lib/scoreko-dev");
}
}