Files
clawx/scripts/run-electron-builder.mjs
paisley 0c10c729ee Release v0.4.0 alpha (#970)
Co-authored-by: Haze <709547807@qq.com>
2026-05-03 15:43:35 +08:00

52 lines
1.4 KiB
JavaScript

#!/usr/bin/env node
import { spawn } from 'node:child_process';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const ROOT = path.resolve(__dirname, '..');
const ELECTRON_BUILDER_BIN = process.platform === 'win32'
? path.join(ROOT, 'node_modules', '.bin', 'electron-builder.cmd')
: path.join(ROOT, 'node_modules', '.bin', 'electron-builder');
const args = process.argv.slice(2);
function shellQuote(value) {
return `'${String(value).replace(/'/g, `'\\''`)}'`;
}
function spawnElectronBuilder() {
if (process.platform === 'darwin') {
const command = [
'ulimit -n 65536 >/dev/null 2>&1 || ulimit -n 32768 >/dev/null 2>&1 || ulimit -n 16384 >/dev/null 2>&1 || true',
`exec ${shellQuote(ELECTRON_BUILDER_BIN)}${args.length > 0 ? ` ${args.map(shellQuote).join(' ')}` : ''}`,
].join('; ');
return spawn('/bin/bash', ['-lc', command], {
cwd: ROOT,
stdio: 'inherit',
env: process.env,
});
}
return spawn(ELECTRON_BUILDER_BIN, args, {
cwd: ROOT,
stdio: 'inherit',
env: process.env,
shell: process.platform === 'win32',
});
}
const child = spawnElectronBuilder();
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);
});