1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
"use strict";
const path = require("node:path");
const { spawnSync } = require("node:child_process");
const packages = {
"darwin-arm64": "@superdisk/dumbforge-darwin-arm64",
"darwin-x64": "@superdisk/dumbforge-darwin-x64",
"linux-arm64": "@superdisk/dumbforge-linux-arm64",
"linux-x64": "@superdisk/dumbforge-linux-x64",
"win32-arm64": "@superdisk/dumbforge-win32-arm64",
"win32-x64": "@superdisk/dumbforge-win32-x64"
};
module.exports = function run(remoteHelper) {
const target = `${process.platform}-${process.arch}`;
const packageName = packages[target];
if (!packageName) {
console.error(`dumbforge: unsupported platform ${target}`);
process.exit(1);
}
let packageRoot;
try {
packageRoot = path.dirname(require.resolve(`${packageName}/package.json`));
} catch (error) {
console.error(
`dumbforge: the native package ${packageName} is missing. ` +
"Reinstall without --no-optional."
);
process.exit(1);
}
const executable = path.join(
packageRoot,
"bin",
process.platform === "win32" ? "dumbforge.exe" : "dumbforge"
);
const args = remoteHelper
? ["__remote-helper", ...process.argv.slice(2)]
: process.argv.slice(2);
const result = spawnSync(executable, args, { stdio: "inherit" });
if (result.error) {
console.error(`dumbforge: ${result.error.message}`);
process.exit(1);
}
process.exit(result.status === null ? 1 : result.status);
};
|