Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1504)

Unified Diff: lib/src/command/build.dart

Issue 2184303002: Make pub strong-mode clean. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: Code review changes Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/src/command/barback.dart ('k') | lib/src/command/cache_repair.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/command/build.dart
diff --git a/lib/src/command/build.dart b/lib/src/command/build.dart
index 38397d150c8ae2c24dc1ed738fd3f3486da84bd8..b4457a5651bd9810d4c2be8050817b3bf114b948 100644
--- a/lib/src/command/build.dart
+++ b/lib/src/command/build.dart
@@ -53,17 +53,19 @@ class BuildCommand extends BarbackCommand {
var errorsJson = [];
var logJson = [];
- var environmentConstants = new Map.fromIterable(argResults["define"],
+ var environmentConstants = new Map<String, String>.fromIterable(
+ argResults["define"],
key: (pair) => pair.split("=").first,
value: (pair) => pair.split("=").last);
- // Since this server will only be hit by the transformer loader and isn't
- // user-facing, just use an IPv4 address to avoid a weird bug on the
- // OS X buildbots.
- return AssetEnvironment.create(entrypoint, mode,
+ try {
+ // Since this server will only be hit by the transformer loader and isn't
+ // user-facing, just use an IPv4 address to avoid a weird bug on the OS X
+ // buildbots.
+ var environment = await AssetEnvironment.create(entrypoint, mode,
environmentConstants: environmentConstants,
- useDart2JS: true)
- .then((environment) {
+ useDart2JS: true);
+
// Show in-progress errors, but not results. Those get handled
// implicitly by getAllAssets().
environment.barback.errors.listen((error) {
@@ -85,41 +87,38 @@ class BuildCommand extends BarbackCommand {
(entry) => logJson.add(_logEntryToJson(entry)));
}
- return log.progress("Building ${entrypoint.root.name}", () {
+ var assets = await log.progress("Building ${entrypoint.root.name}",
+ () async {
// Register all of the build directories.
// TODO(rnystrom): We don't actually need to bind servers for these, we
// just need to add them to barback's sources. Add support to
// BuildEnvironment for going the latter without the former.
- return Future.wait(sourceDirectories.map(
- (dir) => environment.serveDirectory(dir))).then((_) {
-
- return environment.barback.getAllAssets();
- });
- }).then((assets) {
- // Find all of the JS entrypoints we built.
- var dart2JSEntrypoints = assets
- .where((asset) => asset.id.path.endsWith(".dart.js"))
- .map((asset) => asset.id);
-
- return Future.wait(assets.map(_writeAsset)).then((_) {
- return _copyBrowserJsFiles(dart2JSEntrypoints, assets);
- }).then((_) {
- log.message('Built $builtFiles ${pluralize('file', builtFiles)} '
- 'to "$outputDirectory".');
-
- log.json.message({
- "buildResult": "success",
- "outputDirectory": outputDirectory,
- "numFiles": builtFiles,
- "log": logJson
- });
- });
+ await Future.wait(sourceDirectories.map(
+ (dir) => environment.serveDirectory(dir)));
+
+ return environment.barback.getAllAssets();
+ });
+
+ // Find all of the JS entrypoints we built.
+ var dart2JSEntrypoints = assets
+ .where((asset) => asset.id.path.endsWith(".dart.js"))
+ .map((asset) => asset.id);
+
+ await Future.wait(assets.map(_writeAsset));
+ await _copyBrowserJsFiles(dart2JSEntrypoints, assets);
+
+ log.message('Built $builtFiles ${pluralize('file', builtFiles)} '
+ 'to "$outputDirectory".');
+
+ log.json.message({
+ "buildResult": "success",
+ "outputDirectory": outputDirectory,
+ "numFiles": builtFiles,
+ "log": logJson
});
- }).catchError((error) {
+ } on BarbackException catch (_) {
// If [getAllAssets()] throws a BarbackException, the error has already
// been reported.
- if (error is! BarbackException) throw error;
-
log.error(log.red("Build failed."));
log.json.message({
"buildResult": "failure",
@@ -128,7 +127,7 @@ class BuildCommand extends BarbackCommand {
});
return flushThenExit(exit_codes.DATA);
- });
+ }
}
/// Writes [asset] to the appropriate build directory.
« no previous file with comments | « lib/src/command/barback.dart ('k') | lib/src/command/cache_repair.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698