47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
var log = require('gulplog');
|
|
var messages = require('@gulpjs/messages');
|
|
|
|
var exit = require('../../../shared/exit');
|
|
var formatError = require('../format-error');
|
|
|
|
// Wire up logging events
|
|
function logEvents(gulpInst) {
|
|
|
|
// Exit with 0 or 1
|
|
var failed = false;
|
|
process.once('exit', function(code) {
|
|
if (code === 0 && failed) {
|
|
exit(1);
|
|
}
|
|
});
|
|
|
|
// Total hack due to poor error management in orchestrator
|
|
gulpInst.on('err', function() {
|
|
failed = true;
|
|
});
|
|
|
|
gulpInst.on('task_start', function(e) {
|
|
// TODO: batch these
|
|
// so when 5 tasks start at once it only logs one time with all 5
|
|
log.info({ tag: messages.TASK_START, task: e.task });
|
|
});
|
|
|
|
gulpInst.on('task_stop', function(e) {
|
|
log.info({ tag: messages.TASK_STOP, task: e.task, duration: e.hrDuration });
|
|
});
|
|
|
|
gulpInst.on('task_err', function(e) {
|
|
log.error({ tag: messages.TASK_FAILURE, task: e.task, duration: e.hrDuration });
|
|
log.error({ tag: messages.TASK_ERROR, message: formatError(e) });
|
|
});
|
|
|
|
gulpInst.on('task_not_found', function(err) {
|
|
log.error({ tag: messages.TASK_MISSING, task: err.task });
|
|
exit(1);
|
|
});
|
|
}
|
|
|
|
module.exports = logEvents;
|