X Tutup
Skip to content

Commit b1e76c5

Browse files
committed
feat(build): auto format the generated dart code.
Fixes angular#480 Closes angular#504
1 parent 52d8845 commit b1e76c5

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

gulpfile.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ var pubbuild = require('./tools/build/pubbuild');
1313
var dartanalyzer = require('./tools/build/dartanalyzer');
1414
var jsserve = require('./tools/build/jsserve');
1515
var pubserve = require('./tools/build/pubserve');
16+
var rundartpackage = require('./tools/build/rundartpackage');
1617
var karma = require('karma').server;
1718
var minimist = require('minimist');
1819

@@ -166,6 +167,10 @@ var CONFIG = {
166167
},
167168
pubspec: {
168169
src: 'modules/*/pubspec.yaml'
170+
},
171+
formatDart: {
172+
packageName: 'dart_style',
173+
args: ['dart_style:format', '-w', 'dist/dart']
169174
}
170175
};
171176

@@ -310,6 +315,15 @@ gulp.task('build/pubbuild.dart', pubbuild(gulp, gulpPlugins, {
310315
command: DART_SDK.PUB
311316
}));
312317

318+
// ------------
319+
// format dart
320+
321+
gulp.task('build/format.dart', rundartpackage(gulp, gulpPlugins, {
322+
pub: DART_SDK.PUB,
323+
packageName: CONFIG.formatDart.packageName,
324+
args: CONFIG.formatDart.args
325+
}));
326+
313327
// ------------------
314328
// web servers
315329
gulp.task('serve.js.dev', jsserve(gulp, gulpPlugins, {
@@ -430,7 +444,8 @@ gulp.task('build.dart', function() {
430444
['build/deps.js.dart2js', 'build/transpile.dart', 'build/html.dart'],
431445
'build/pubspec.dart',
432446
'build/pubbuild.dart',
433-
'build/analyze.dart'
447+
'build/analyze.dart',
448+
'build/format.dart'
434449
);
435450
});
436451

tools/build/rundartpackage.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
var util = require('./util');
2+
var Q = require('q');
3+
var spawn = require('child_process').spawn;
4+
var readline = require('readline');
5+
6+
module.exports = function(gulp, plugins, config) {
7+
return function() {
8+
return isInstalled().then(function(installed) {
9+
if (!installed) {
10+
return util.processToPromise(spawn(config.pub,
11+
['global', 'activate', config.packageName, '--no-executables'], {
12+
stdio: 'inherit'
13+
}));
14+
}
15+
}).then(function() {
16+
return util.processToPromise(spawn(config.pub, ['global', 'run'].concat(config.args), {
17+
stdio: 'inherit'
18+
}));
19+
});
20+
};
21+
22+
function isInstalled() {
23+
var subProcess = spawn(config.pub, ['global', 'list'], {
24+
// inherit stdin and stderr, but filter stdout
25+
stdio: [process.stdin, 'pipe', process.stderr]
26+
});
27+
var rl = readline.createInterface({
28+
input: subProcess.stdout,
29+
output: process.stdout,
30+
terminal: false
31+
});
32+
var found = false;
33+
rl.on('line', function(line) {
34+
if (line.indexOf(config.packageName) !== -1) {
35+
found = true;
36+
}
37+
console.log(line);
38+
});
39+
return util.processToPromise(subProcess).then( function() {
40+
return found;
41+
});
42+
}
43+
44+
};

0 commit comments

Comments
 (0)
X Tutup