29 lines
892 B
JavaScript
29 lines
892 B
JavaScript
import { rmSync, mkdirSync } from "node:fs";
|
|
import { dirname, join, resolve } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { spawnSync } from "node:child_process";
|
|
|
|
const scriptsDir = dirname(fileURLToPath(import.meta.url));
|
|
const frontendRoot = resolve(scriptsDir, "..");
|
|
const repoRoot = resolve(frontendRoot, "..");
|
|
const backendRoot = join(repoRoot, "backend");
|
|
const outDir = join(frontendRoot, "daemon");
|
|
const outPath = join(outDir, process.platform === "win32" ? "ao.exe" : "ao");
|
|
|
|
rmSync(outDir, { recursive: true, force: true });
|
|
mkdirSync(outDir, { recursive: true });
|
|
|
|
const result = spawnSync("go", ["build", "-o", outPath, "./cmd/ao"], {
|
|
cwd: backendRoot,
|
|
stdio: "inherit",
|
|
});
|
|
|
|
if (result.error) {
|
|
console.error(`failed to start go build: ${result.error.message}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
if (result.status !== 0) {
|
|
process.exit(result.status ?? 1);
|
|
}
|