54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
import { spawn } from "node:child_process";
|
|
|
|
const extraArgs = process.argv.slice(2);
|
|
const env = { ...process.env };
|
|
|
|
if (env.CSC_IDENTITY_AUTO_DISCOVERY === undefined) {
|
|
env.CSC_IDENTITY_AUTO_DISCOVERY = "false";
|
|
}
|
|
|
|
const allowedPublishModes = new Set(["always", "never", "onTag", "onTagOrDraft"]);
|
|
const explicitPublishArg = extraArgs.some((arg) => arg === "--publish" || arg.startsWith("--publish="));
|
|
const requestedPublishMode = env.AGENTCOMPANY_ELECTRON_PUBLISH?.trim();
|
|
let publishMode = "never";
|
|
|
|
if (requestedPublishMode) {
|
|
if (!allowedPublishModes.has(requestedPublishMode)) {
|
|
console.warn(
|
|
`[build-desktop] Ignoring invalid AGENTCOMPANY_ELECTRON_PUBLISH="${requestedPublishMode}". ` +
|
|
"Falling back to --publish never.",
|
|
);
|
|
} else {
|
|
publishMode = requestedPublishMode;
|
|
}
|
|
}
|
|
|
|
const builderArgs = ["exec", "electron-builder", "--config", "electron-builder.yml"];
|
|
if (!explicitPublishArg) {
|
|
builderArgs.push("--publish", publishMode);
|
|
}
|
|
builderArgs.push(...extraArgs);
|
|
|
|
const child = spawn(
|
|
"pnpm",
|
|
builderArgs,
|
|
{
|
|
stdio: "inherit",
|
|
env,
|
|
shell: process.platform === "win32",
|
|
},
|
|
);
|
|
|
|
child.on("exit", (code, signal) => {
|
|
if (signal) {
|
|
process.kill(process.pid, signal);
|
|
return;
|
|
}
|
|
process.exit(code ?? 1);
|
|
});
|
|
|
|
child.on("error", (error) => {
|
|
console.error(error);
|
|
process.exit(1);
|
|
});
|