diff --git a/bin/child-thread.js b/bin/child-thread.js new file mode 100644 index 0000000..40d939b --- /dev/null +++ b/bin/child-thread.js @@ -0,0 +1,45 @@ +/** + * Created by nuintun on 2015/12/4. + */ + +'use strict'; + +var Emulator = require('./emulator'); + +// thread +process.on('message', function (project){ + var stream; + + var 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() + }); + }); +}); diff --git a/bin/emulator.js b/bin/emulator.js index 408c0cd..41c9402 100644 --- a/bin/emulator.js +++ b/bin/emulator.js @@ -69,40 +69,4 @@ function normalizeExecArgs(command, options){ }; } -// thread -process.on('message', function (project){ - var stream; - - var 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() - }); - }); -}); +module.exports = Emulator; diff --git a/bin/thread.js b/bin/thread.js index c94a600..e32b04f 100644 --- a/bin/thread.js +++ b/bin/thread.js @@ -44,7 +44,7 @@ module.exports = { env[item.name] = item.value; }); - thread = fork(path.join(__dirname, 'emulator'), { + thread = fork(path.join(__dirname, 'child-thread'), { env: env });