12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 'use strict';
- var log = require('gulplog');
- var ansi = require('../../../shared/ansi');
- var tasks = {};
- function warn() {
- var taskKeys = Object.keys(tasks);
- if (!taskKeys.length) {
- return;
- }
- var taskNames = taskKeys.map(function(key) {
- return tasks[key];
- }).join(', ');
- process.exitCode = 1;
- log.warn(
- ansi.red('The following tasks did not complete:'),
- ansi.cyan(taskNames)
- );
- log.warn(
- ansi.red('Did you forget to signal async completion?')
- );
- }
- function start(e) {
- tasks[e.uid] = e.name;
- }
- function clear(e) {
- delete tasks[e.uid];
- }
- function clearAll() {
- tasks = {};
- }
- function logSyncTask(gulpInst, opts) {
- process.once('exit', warn);
- gulpInst.on('start', start);
- gulpInst.on('stop', clear);
- // When not running in --continue mode, we need to clear everything on error to avoid
- // false positives.
- gulpInst.on('error', opts.continue ? clear : clearAll);
- }
- module.exports = logSyncTask;
|