command-manager/bin/child-thread.js
2015-12-04 17:58:01 +08:00

65 lines
1.1 KiB
JavaScript

/**
* Created by nuintun on 2015/12/4.
*/
'use strict';
var Emulator = require('./emulator');
var emulator;
// thread
process.on('message', function (message){
if (message.action === 'stop') {
if (emulator) {
emulator.stop();
}
process.exit();
return;
}
if (message.action === 'start') {
var stream;
var project = message.project;
if (emulator) {
emulator.stop();
}
emulator = new Emulator({
cwd: project.path,
command: project.command.value
});
stream = emulator.start();
stream.stdout.on('data', function (data){
process.send({
event: 'data',
project: project,
data: data.toString()
});
});
stream.stderr.on('data', function (error){
emulator.stop();
process.send({
event: 'error',
project: project,
data: error.toString()
});
});
stream.on('close', function (signal){
emulator.stop();
process.send({
event: 'close',
project: project,
data: signal.toString()
});
});
}
});