Skip to content

Commit 571a7c9

Browse files
committed
Update: Support new alpha of gulp 4 to handle new undertaker tree return value
1 parent 410c09b commit 571a7c9

File tree

8 files changed

+90
-6
lines changed

8 files changed

+90
-6
lines changed

lib/versioned/^4.0.0-alpha.1/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ var tildify = require('tildify');
1010
var exit = require('../../shared/exit');
1111

1212
var logTasks = require('../../shared/log/tasks');
13-
var logEvents = require('./log/events');
14-
var logSyncTask = require('./log/syncTask');
15-
var logTasksSimple = require('./log/tasksSimple');
13+
var logEvents = require('../^4.0.0-alpha.2/log/events');
14+
var logSyncTask = require('../^4.0.0-alpha.2/log/syncTask');
15+
var logTasksSimple = require('../^4.0.0-alpha.2/log/tasksSimple');
1616

1717
function execute(opts, env) {
1818

File renamed without changes.
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
'use strict';
2+
3+
var fs = require('fs');
4+
5+
var log = require('gulplog');
6+
var chalk = require('chalk');
7+
var stdout = require('mute-stdout');
8+
var tildify = require('tildify');
9+
10+
var exit = require('../../shared/exit');
11+
12+
var logTasks = require('../../shared/log/tasks');
13+
var logEvents = require('./log/events');
14+
var logSyncTask = require('./log/syncTask');
15+
var logTasksSimple = require('./log/tasksSimple');
16+
17+
function execute(opts, env) {
18+
19+
var tasks = opts._;
20+
var toRun = tasks.length ? tasks : ['default'];
21+
22+
if (opts.tasksSimple || opts.tasks || opts.tasksJson) {
23+
// Mute stdout if we are listing tasks
24+
stdout.mute();
25+
}
26+
27+
var gulpInst = require(env.modulePath);
28+
logEvents(gulpInst);
29+
logSyncTask(gulpInst);
30+
31+
// This is what actually loads up the gulpfile
32+
require(env.configPath);
33+
34+
// Always unmute stdout after gulpfile is required
35+
stdout.unmute();
36+
37+
process.nextTick(function() {
38+
var tree;
39+
40+
if (opts.tasksSimple) {
41+
tree = gulpInst.tree();
42+
return logTasksSimple(tree.nodes);
43+
}
44+
if (opts.tasks) {
45+
tree = gulpInst.tree({ deep: true });
46+
tree.label = 'Tasks for ' + chalk.magenta(tildify(env.configPath));
47+
48+
return logTasks(tree, function(task) {
49+
return gulpInst.task(task).description;
50+
});
51+
}
52+
if (opts.tasksJson) {
53+
tree = gulpInst.tree({ deep: true });
54+
tree.label = 'Tasks for ' + tildify(env.configPath);
55+
56+
var output = JSON.stringify(tree);
57+
58+
if (typeof opts.tasksJson === 'boolean' && opts.tasksJson) {
59+
return console.log(output);
60+
} else {
61+
return fs.writeFileSync(opts.tasksJson, output, 'utf-8');
62+
}
63+
}
64+
try {
65+
log.info('Using gulpfile', chalk.magenta(tildify(env.configPath)));
66+
gulpInst.parallel(toRun)(function(err) {
67+
if (err) {
68+
exit(1);
69+
}
70+
});
71+
} catch (err) {
72+
log.error(chalk.red(err.message));
73+
log.error('To list available tasks, try running: gulp --tasks');
74+
exit(1);
75+
}
76+
});
77+
}
78+
79+
module.exports = execute;
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"label":"test1","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test2","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"test1","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test3","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"described","type":"function","nodes":[]}]}]},{"label":"test4","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"errorFunction","type":"function","nodes":[]},{"label":"anon","type":"function","nodes":[]}]}]},{"label":"default","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"test1","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test3","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"described","type":"function","nodes":[]}]}]},{"label":"noop","type":"function","nodes":[]}]}]}]
1+
{"label":"Tasks for {{path}}","nodes":[{"label":"test1","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test2","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"test1","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test3","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"described","type":"function","nodes":[]}]}]},{"label":"test4","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"errorFunction","type":"function","nodes":[]},{"label":"anon","type":"function","nodes":[]}]}]},{"label":"default","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"test1","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"noop","type":"function","nodes":[]}]}]},{"label":"test3","type":"task","nodes":[{"label":"<series>","type":"function","nodes":[{"label":"described","type":"function","nodes":[]}]}]},{"label":"noop","type":"function","nodes":[]}]}]}]}

test/flags-tasks-json.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
'use strict';
22

33
var fs = require('fs-extra');
4+
var path = require('path');
5+
var tildify = require('tildify');
46
var lab = exports.lab = require('lab').script();
57
var code = require('code');
68

@@ -9,11 +11,14 @@ var output = require('./expected/flags-tasks-json.json');
911

1012
lab.experiment('flag: --tasks-json', function() {
1113

14+
var outputString = JSON.stringify(output).replace(/{{path}}/, tildify(path.join(__dirname, 'fixtures/gulpfile.js')));
15+
var expected = JSON.parse(outputString);
16+
1217
lab.test('prints the task list with no args', function(done) {
1318
child.exec('node ' + __dirname + '/../bin/gulp.js --tasks-json --gulpfile "./test/fixtures/gulpfile.js" ', function(err, stdout) {
1419
stdout = stdout.replace(/\\/g, '/').split('\n');
1520
var parsedJson = JSON.parse(stdout[1]);
16-
code.expect(parsedJson).to.deep.equal(output);
21+
code.expect(parsedJson).to.deep.equal(expected);
1722
done(err);
1823
});
1924
});
@@ -27,7 +32,7 @@ lab.experiment('flag: --tasks-json', function() {
2732
child.exec('node ' + __dirname + '/../bin/gulp.js --tasks-json "../output/tasks.json" --gulpfile "./test/fixtures/gulpfile.js" ', function(err) {
2833
var file = fs.readFileSync(__dirname + '/output/tasks.json', 'utf8');
2934
var parsedJson = JSON.parse(file);
30-
code.expect(parsedJson).to.deep.equal(output);
35+
code.expect(parsedJson).to.deep.equal(expected);
3136
fs.removeSync(__dirname + '/output/');
3237
done(err);
3338
});

0 commit comments

Comments
 (0)