39 lines
791 B
JavaScript
39 lines
791 B
JavaScript
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
const { spawn } = require('node:child_process');
|
|
|
|
const { resolveElectronBinary } = require('./electron-launcher');
|
|
|
|
let electronPath;
|
|
try {
|
|
electronPath = resolveElectronBinary();
|
|
} catch (error) {
|
|
console.error(error && error.message ? error.message : error);
|
|
process.exit(1);
|
|
}
|
|
const env = { ...process.env };
|
|
delete env.ELECTRON_RUN_AS_NODE;
|
|
|
|
const child = spawn(electronPath, ['.'], {
|
|
stdio: 'inherit',
|
|
env,
|
|
windowsHide: false,
|
|
});
|
|
|
|
let closed = false;
|
|
child.on('close', (code, signal) => {
|
|
closed = true;
|
|
if (code === null) {
|
|
process.exit(signal ? 1 : 0);
|
|
return;
|
|
}
|
|
process.exit(code);
|
|
});
|
|
|
|
for (const signal of ['SIGINT', 'SIGTERM', 'SIGUSR2']) {
|
|
process.on(signal, () => {
|
|
if (!closed) child.kill(signal);
|
|
});
|
|
}
|