UNPKG

708 BJavaScriptView Raw
1'use strict';
2
3const ChildProcess = require('child_process');
4
5module.exports = function Terminal (data) {
6 return new Promise(function (resolve, reject) {
7 if (typeof data === 'string') data = { cmd: data };
8 data.args = data.args || [];
9
10 var stdout = '';
11 var stderr = '';
12 var child = ChildProcess.spawn(data.cmd, data.args, data);
13
14 child.stdout.on('data', function (data) {
15 stdout += data;
16 });
17
18 child.stderr.on('data', function (data) {
19 stderr += data;
20 });
21
22 child.on('error', function (error) {
23 return reject(error);
24 });
25
26 child.on('close', function (code) {
27 if (stderr) {
28 return resolve(stderr);
29 } else if (stdout) {
30 return resolve(stdout);
31 }
32 });
33
34 });
35};