You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
779 B
JavaScript
31 lines
779 B
JavaScript
'use strict';
|
|
|
|
var childProcess = require("child_process");
|
|
var rfr = require("rfr");
|
|
var logStream = rfr("lib/gulp/log-stream");
|
|
|
|
module.exports = function runProcess(path, args) {
|
|
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
|
|
|
if (options.logger != null) {
|
|
options.logger.info("Starting " + path + "...");
|
|
}
|
|
|
|
var proc = childProcess.spawn(path, args, options);
|
|
|
|
if (options.logger != null) {
|
|
logStream(proc.stdout, options.logger.log);
|
|
logStream(proc.stderr, options.logger.error);
|
|
}
|
|
|
|
proc.on("error", function (err) {
|
|
if (options.logger != null) {
|
|
options.logger.error(err.stack);
|
|
}
|
|
});
|
|
|
|
proc.on("close", function (code) {
|
|
options.logger.info("Exited with code " + code.toString() + ": " + path + ".");
|
|
});
|
|
};
|