alwaysai
Version:
The alwaysAI command-line interface (CLI)
45 lines • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const child_process_1 = require("child_process");
const open = require("open");
const signalExit = require("signal-exit");
async function runForeground(cmd) {
const childProcess = child_process_1.spawn(cmd.exe, cmd.args || [], {
cwd: cmd.cwd,
stdio: 'inherit',
});
// Kill child when parent exits
signalExit(() => {
childProcess.kill();
process.exit(1);
});
await new Promise(() => {
// Kill parent when child errors
childProcess.on('error', () => {
process.exit(1);
});
// Kill parent when child exits
childProcess.on('exit', () => {
process.exit(1);
});
// Kill parent when child process is closed.
childProcess.on('close', () => {
process.exit(1);
});
if (childProcess.stdout) {
childProcess.stdout.on('data', (data) => {
process.stdout.write(data);
if (data.includes('http://0.0.0.0:5000/')) {
open('http://0.0.0.0:5000/');
}
});
}
if (childProcess.stderr) {
childProcess.stderr.on('data', (data) => {
process.stderr.write(data);
});
}
});
}
exports.runForeground = runForeground;
//# sourceMappingURL=run-foreground.js.map