51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
import { mkdir, rm } from "node:fs/promises";
|
|
import { fileURLToPath } from "node:url";
|
|
import { dirname, join } from "node:path";
|
|
import { prepareBuildEnv, resolvePublishMode } from "./build/prepare-env.mjs";
|
|
import { resolveBuildVersion, writeRuntimeBuilderConfig } from "./build/emit-builder-config.mjs";
|
|
import { buildElectronBuilderArgs, runElectronBuilder } from "./build/run-electron-builder.mjs";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
const rootDir = join(__dirname, "..");
|
|
const packageJsonPath = join(rootDir, "package.json");
|
|
const buildDir = join(rootDir, "build");
|
|
const runtimeConfigPath = join(buildDir, "electron-builder.runtime.json");
|
|
const localElectronDistPath = join(rootDir, "node_modules", "electron", "dist");
|
|
const customMacSignPath = join(__dirname, "electron-builder-mac-sign.mjs");
|
|
|
|
const extraArgs = process.argv.slice(2);
|
|
const prepared = prepareBuildEnv(process.env, extraArgs);
|
|
const publishMode = resolvePublishMode(prepared.env);
|
|
|
|
await rm(buildDir, { recursive: true, force: true });
|
|
await mkdir(buildDir, { recursive: true });
|
|
|
|
const buildVersion = await resolveBuildVersion(packageJsonPath, prepared.env.AGENTCOMPANY_BUILD_VERSION);
|
|
await writeRuntimeBuilderConfig({
|
|
rootDir,
|
|
buildDir,
|
|
runtimeConfigPath,
|
|
buildVersion,
|
|
extraArgs,
|
|
prepared,
|
|
customMacSignPath,
|
|
localElectronDistPath,
|
|
});
|
|
prepared.env.AGENTCOMPANY_BUILD_VERSION = buildVersion;
|
|
prepared.env.npm_package_version = buildVersion;
|
|
console.log(`[build-desktop] Cleaned ${buildDir} and staged build version ${buildVersion}.`);
|
|
|
|
const builderArgs = buildElectronBuilderArgs({
|
|
runtimeConfigPath,
|
|
extraArgs,
|
|
publishMode,
|
|
prepared,
|
|
});
|
|
|
|
const result = await runElectronBuilder(builderArgs, prepared.env);
|
|
if (result.signal) {
|
|
process.kill(process.pid, result.signal);
|
|
} else {
|
|
process.exit(result.code);
|
|
}
|