mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-06 05:32:06 +00:00
Codex-generated pull request (#7)
* feat: recreate scoreko electron wrapper on electron 39.5.1 * fix: handle missing bindings in sqlite legacy workspace
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import { existsSync } from "node:fs";
|
||||
import path from "node:path";
|
||||
import { spawn } from "node:child_process";
|
||||
|
||||
const root = process.cwd();
|
||||
const nodecgDir = path.join(root, "lib", "nodecg");
|
||||
const sqliteLegacyDir = path.join(nodecgDir, "workspaces", "database-adapter-sqlite-legacy");
|
||||
|
||||
const moduleDirs = [nodecgDir, sqliteLegacyDir].filter((dir) => existsSync(path.join(dir, "package.json")));
|
||||
|
||||
if (moduleDirs.length === 0) {
|
||||
console.error("No NodeCG package folders found. Expected lib/nodecg and/or workspaces.");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
/** @returns {Promise<void>} */
|
||||
function run(command, args, cwd) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const child = spawn(command, args, {
|
||||
cwd,
|
||||
stdio: "inherit",
|
||||
shell: process.platform === "win32",
|
||||
env: {
|
||||
...process.env,
|
||||
npm_config_runtime: "electron",
|
||||
npm_config_target: "39.5.1",
|
||||
npm_config_disturl: "https://electronjs.org/headers",
|
||||
},
|
||||
});
|
||||
|
||||
child.on("exit", (code) => {
|
||||
if (code === 0) {
|
||||
resolve();
|
||||
} else {
|
||||
reject(new Error(`${command} ${args.join(" ")} failed with code ${code}`));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
for (const dir of moduleDirs) {
|
||||
if (dir === sqliteLegacyDir) {
|
||||
console.log(`\n[rebuild-native] Ensuring sqlite legacy workspace deps in: ${dir}`);
|
||||
await run("npm", ["install"], dir);
|
||||
await run("npm", ["install", "bindings", "--no-save"], dir);
|
||||
}
|
||||
|
||||
console.log(`\n[rebuild-native] Rebuilding better-sqlite3 in: ${dir}`);
|
||||
await run(
|
||||
"npm",
|
||||
["rebuild", "better-sqlite3", "--runtime=electron", "--target=39.5.1", "--dist-url=https://electronjs.org/headers"],
|
||||
dir,
|
||||
);
|
||||
}
|
||||
|
||||
console.log("\n[rebuild-native] Done.");
|
||||
Reference in New Issue
Block a user