feat(build): auto format the generated dart code.
Fixes #480 Closes #504
This commit is contained in:
parent
52d88457c8
commit
b1e76c550e
17
gulpfile.js
17
gulpfile.js
|
@ -13,6 +13,7 @@ var pubbuild = require('./tools/build/pubbuild');
|
||||||
var dartanalyzer = require('./tools/build/dartanalyzer');
|
var dartanalyzer = require('./tools/build/dartanalyzer');
|
||||||
var jsserve = require('./tools/build/jsserve');
|
var jsserve = require('./tools/build/jsserve');
|
||||||
var pubserve = require('./tools/build/pubserve');
|
var pubserve = require('./tools/build/pubserve');
|
||||||
|
var rundartpackage = require('./tools/build/rundartpackage');
|
||||||
var karma = require('karma').server;
|
var karma = require('karma').server;
|
||||||
var minimist = require('minimist');
|
var minimist = require('minimist');
|
||||||
|
|
||||||
|
@ -166,6 +167,10 @@ var CONFIG = {
|
||||||
},
|
},
|
||||||
pubspec: {
|
pubspec: {
|
||||||
src: 'modules/*/pubspec.yaml'
|
src: 'modules/*/pubspec.yaml'
|
||||||
|
},
|
||||||
|
formatDart: {
|
||||||
|
packageName: 'dart_style',
|
||||||
|
args: ['dart_style:format', '-w', 'dist/dart']
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -310,6 +315,15 @@ gulp.task('build/pubbuild.dart', pubbuild(gulp, gulpPlugins, {
|
||||||
command: DART_SDK.PUB
|
command: DART_SDK.PUB
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// ------------
|
||||||
|
// format dart
|
||||||
|
|
||||||
|
gulp.task('build/format.dart', rundartpackage(gulp, gulpPlugins, {
|
||||||
|
pub: DART_SDK.PUB,
|
||||||
|
packageName: CONFIG.formatDart.packageName,
|
||||||
|
args: CONFIG.formatDart.args
|
||||||
|
}));
|
||||||
|
|
||||||
// ------------------
|
// ------------------
|
||||||
// web servers
|
// web servers
|
||||||
gulp.task('serve.js.dev', jsserve(gulp, gulpPlugins, {
|
gulp.task('serve.js.dev', jsserve(gulp, gulpPlugins, {
|
||||||
|
@ -430,7 +444,8 @@ gulp.task('build.dart', function() {
|
||||||
['build/deps.js.dart2js', 'build/transpile.dart', 'build/html.dart'],
|
['build/deps.js.dart2js', 'build/transpile.dart', 'build/html.dart'],
|
||||||
'build/pubspec.dart',
|
'build/pubspec.dart',
|
||||||
'build/pubbuild.dart',
|
'build/pubbuild.dart',
|
||||||
'build/analyze.dart'
|
'build/analyze.dart',
|
||||||
|
'build/format.dart'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
var util = require('./util');
|
||||||
|
var Q = require('q');
|
||||||
|
var spawn = require('child_process').spawn;
|
||||||
|
var readline = require('readline');
|
||||||
|
|
||||||
|
module.exports = function(gulp, plugins, config) {
|
||||||
|
return function() {
|
||||||
|
return isInstalled().then(function(installed) {
|
||||||
|
if (!installed) {
|
||||||
|
return util.processToPromise(spawn(config.pub,
|
||||||
|
['global', 'activate', config.packageName, '--no-executables'], {
|
||||||
|
stdio: 'inherit'
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}).then(function() {
|
||||||
|
return util.processToPromise(spawn(config.pub, ['global', 'run'].concat(config.args), {
|
||||||
|
stdio: 'inherit'
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function isInstalled() {
|
||||||
|
var subProcess = spawn(config.pub, ['global', 'list'], {
|
||||||
|
// inherit stdin and stderr, but filter stdout
|
||||||
|
stdio: [process.stdin, 'pipe', process.stderr]
|
||||||
|
});
|
||||||
|
var rl = readline.createInterface({
|
||||||
|
input: subProcess.stdout,
|
||||||
|
output: process.stdout,
|
||||||
|
terminal: false
|
||||||
|
});
|
||||||
|
var found = false;
|
||||||
|
rl.on('line', function(line) {
|
||||||
|
if (line.indexOf(config.packageName) !== -1) {
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
|
console.log(line);
|
||||||
|
});
|
||||||
|
return util.processToPromise(subProcess).then( function() {
|
||||||
|
return found;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
Loading…
Reference in New Issue