@perspect3vism/ad4m-cli
Version:
AD4M command-line interface to start and remote-control your local AD4M executor
46 lines (35 loc) • 1.12 kB
JavaScript
const { spawn } = require('child_process');
var os = require('os');
var pty = require('node-pty');
class TestUtils {
static ptyProcesses = [];
static launchProcess(command, inputEventHandler = null, exitEventHandler = null) {
var shell = os.platform() === 'win32' ? 'powershell.exe' : 'sh';
var ptyProcess = pty.spawn(shell, [], {
name: 'xterm-color',
cols: 80,
rows: 30,
cwd: process.env.PWD,
env: process.env
});
ptyProcess.onData((data) => {
if(inputEventHandler)
inputEventHandler(ptyProcess, data);
});
ptyProcess.onExit((exitCode, signal) => {
if(exitEventHandler)
exitEventHandler(ptyProcess, exitCode, signal);
});
this.ptyProcesses.push(ptyProcess);
ptyProcess.write(`${command}\r`);
return ptyProcess;
}
static terminateProcesses() {
this.ptyProcesses.forEach(
p => {
p.kill("SIGHUP");
}
);
}
}
module.exports = TestUtils