Skip to content

Commit 4c49f4a

Browse files
committed
Update: Add flags.continue to config
1 parent 5cce19c commit 4c49f4a

File tree

8 files changed

+114
-8
lines changed

8 files changed

+114
-8
lines changed

index.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,6 @@ var usage =
5959
var parser = yargs.usage(usage, cliOptions);
6060
var opts = parser.argv;
6161

62-
// This translates the --continue flag in gulp
63-
// To the settle env variable for undertaker
64-
// We use the process.env so the user's gulpfile
65-
// Can know about the flag
66-
if (opts.continue) {
67-
process.env.UNDERTAKER_SETTLE = 'true';
68-
}
69-
7062
// Set up event listeners for logging temporarily.
7163
toConsole(log, opts);
7264

@@ -103,6 +95,14 @@ function handleArguments(env) {
10395
opts = mergeConfigToCliFlags(opts, cfg);
10496
env = mergeConfigToEnvFlags(env, cfg);
10597

98+
// This translates the --continue flag in gulp
99+
// To the settle env variable for undertaker
100+
// We use the process.env so the user's gulpfile
101+
// Can know about the flag
102+
if (opts.continue) {
103+
process.env.UNDERTAKER_SETTLE = 'true';
104+
}
105+
106106
// Set up event listeners for logging again after configuring.
107107
toConsole(log, opts);
108108

lib/shared/config/cli-flags.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var copyProps = require('copy-props');
44

55
var fromTo = {
66
'flags.silent': 'silent',
7+
'flags.continue': 'continue',
78
};
89

910
function mergeConfigToCliFlags(opt, config) {

test/config-flags-continue.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
'use strict';
2+
3+
var expect = require('expect');
4+
var path = require('path');
5+
var skipLines = require('gulp-test-tools').skipLines;
6+
var headLines = require('gulp-test-tools').headLines;
7+
var eraseTime = require('gulp-test-tools').eraseTime;
8+
var eraseLapse = require('gulp-test-tools').eraseLapse;
9+
10+
var fixturesDir = path.join(__dirname, 'fixtures/config');
11+
var runner = require('gulp-test-tools').gulpRunner({ verbose: false }).basedir(fixturesDir);
12+
13+
describe('config: flags.continue', function() {
14+
15+
it('Should continue if `flags.continue` is true in .gulp.*',
16+
function(done) {
17+
runner
18+
.chdir('flags/continue/t')
19+
.gulp()
20+
.run(cb);
21+
22+
function cb(err, stdout, stderr) {
23+
expect(err).toNotEqual(null);
24+
25+
stdout = eraseLapse(eraseTime(skipLines(stdout, 1)));
26+
expect(stdout).toEqual(
27+
'Starting \'default\'...\n' +
28+
'Starting \'err\'...\n' +
29+
'Starting \'next\'...\n' +
30+
'Finished \'next\' after ?\n' +
31+
''
32+
);
33+
stderr = eraseLapse(eraseTime(headLines(stderr, 2)));
34+
expect(stderr).toEqual(
35+
'\'err\' errored after ?\n' +
36+
'Error: Error!'
37+
);
38+
done();
39+
}
40+
});
41+
42+
it('Should not continue if `flags.continue` is false in .gulp.*',
43+
function(done) {
44+
runner
45+
.chdir('flags/continue/f')
46+
.gulp()
47+
.run(cb);
48+
49+
function cb(err, stdout, stderr) {
50+
expect(err).toNotEqual(null);
51+
52+
stdout = eraseLapse(eraseTime(skipLines(stdout, 1)));
53+
expect(stdout).toEqual(
54+
'Starting \'default\'...\n' +
55+
'Starting \'err\'...\n' +
56+
''
57+
);
58+
stderr = eraseLapse(eraseTime(headLines(stderr, 2)));
59+
expect(stderr).toEqual(
60+
'\'err\' errored after ?\n' +
61+
'Error: Error!'
62+
);
63+
done();
64+
}
65+
});
66+
67+
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"flags": {
3+
"continue": false
4+
}
5+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
'use strict';
2+
3+
var gulp = require('gulp');
4+
5+
function err(done) {
6+
done(new Error('Error!'));
7+
}
8+
9+
function next(done) {
10+
done();
11+
}
12+
13+
gulp.task('default', gulp.series(err, next));
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"flags": {
3+
"continue": true
4+
}
5+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
'use strict';
2+
3+
var gulp = require('gulp');
4+
5+
function err(done) {
6+
done(new Error('Error!'));
7+
}
8+
9+
function next(done) {
10+
done();
11+
}
12+
13+
gulp.task('default', gulp.series(err, next));

test/lib/config-cli-flags.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ describe('lib: config/cli-flags', function() {
1212
description: 'DESCRIPTION.',
1313
flags: {
1414
silent: true,
15+
continue: true,
1516
gulpfile: '/path/to/gulpfile',
1617
},
1718
};
1819

1920
var result = mergeConfig(opts, config);
2021
expect(result).toEqual({
2122
silent: true,
23+
continue: true,
2224
});
2325
done();
2426
});

0 commit comments

Comments
 (0)