Index: sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart |
diff --git a/sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart b/sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart |
index df75afd35f965a1b3efc08b888b54d52ae3e8181..6884f836d1b0a063df3bc63c9251a69c32aabdcb 100644 |
--- a/sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart |
+++ b/sdk/lib/_internal/pub_generated/lib/src/barback/asset_environment.dart |
@@ -112,35 +112,109 @@ class AssetEnvironment { |
(_) => |
BarbackServer.bind(this, _hostname, 0, package: package, rootDirectory: "bin")); |
} |
- Future precompileExecutables(String packageName, String directory, |
- {Iterable<AssetId> executableIds}) { |
- if (executableIds == null) { |
- executableIds = graph.packages[packageName].executableIds; |
- } |
- log.fine("executables for $packageName: $executableIds"); |
- if (executableIds.isEmpty) return null; |
- var package = graph.packages[packageName]; |
- return servePackageBinDirectory(packageName).then((server) { |
- return waitAndPrintErrors(executableIds.map((id) { |
- var basename = path.url.basename(id.path); |
- var snapshotPath = path.join(directory, "$basename.snapshot"); |
- return runProcess( |
- Platform.executable, |
- [ |
- '--snapshot=$snapshotPath', |
- server.url.resolve(basename).toString()]).then((result) { |
- if (result.success) { |
- log.message("Precompiled ${_formatExecutable(id)}."); |
+ Future<Map<String, String>> precompileExecutables(String packageName, |
+ String directory, {Iterable<AssetId> executableIds}) { |
+ final completer0 = new Completer(); |
+ scheduleMicrotask(() { |
+ try { |
+ join0() { |
+ log.fine("Executables for ${packageName}: ${executableIds}"); |
+ join1() { |
+ var package = graph.packages[packageName]; |
+ servePackageBinDirectory(packageName).then((x0) { |
+ try { |
+ var server = x0; |
+ join2(x1) { |
+ completer0.complete(null); |
+ } |
+ finally0(cont0, v0) { |
+ server.close(); |
+ cont0(v0); |
+ } |
+ catch0(e1) { |
+ finally0(join2, null); |
+ } |
+ try { |
+ var precompiled = {}; |
+ waitAndPrintErrors(executableIds.map(((id) { |
+ final completer0 = new Completer(); |
+ scheduleMicrotask(() { |
+ try { |
+ var basename = path.url.basename(id.path); |
+ var snapshotPath = |
+ path.join(directory, "${basename}.snapshot"); |
+ runProcess( |
+ Platform.executable, |
+ [ |
+ '--snapshot=${snapshotPath}', |
+ server.url.resolve(basename).toString()]).then((x0) { |
+ try { |
+ var result = x0; |
+ join0() { |
+ completer0.complete(null); |
+ } |
+ if (result.success) { |
+ log.message( |
+ "Precompiled ${_formatExecutable(id)}."); |
+ precompiled[path.withoutExtension(basename)] = |
+ snapshotPath; |
+ join0(); |
+ } else { |
+ completer0.completeError( |
+ new ApplicationException( |
+ log.yellow("Failed to precompile ${_formatExecutable(id)}:\n") + |
+ result.stderr.join('\n'))); |
+ } |
+ } catch (e0) { |
+ completer0.completeError(e0); |
+ } |
+ }, onError: (e1) { |
+ completer0.completeError(e1); |
+ }); |
+ } catch (e2) { |
+ completer0.completeError(e2); |
+ } |
+ }); |
+ return completer0.future; |
+ }))).then((x2) { |
+ try { |
+ x2; |
+ finally0((v1) { |
+ completer0.complete(v1); |
+ }, precompiled); |
+ } catch (e2) { |
+ catch0(e2); |
+ } |
+ }, onError: (e3) { |
+ catch0(e3); |
+ }); |
+ } catch (e4) { |
+ catch0(e4); |
+ } |
+ } catch (e0) { |
+ completer0.completeError(e0); |
+ } |
+ }, onError: (e5) { |
+ completer0.completeError(e5); |
+ }); |
+ } |
+ if (executableIds.isEmpty) { |
+ completer0.complete([]); |
} else { |
- throw new ApplicationException( |
- log.yellow("Failed to precompile " "${_formatExecutable(id)}:\n") + |
- result.stderr.join('\n')); |
+ join1(); |
} |
- }); |
- })).whenComplete(() { |
- server.close(); |
- }); |
+ } |
+ if (executableIds == null) { |
+ executableIds = graph.packages[packageName].executableIds; |
+ join0(); |
+ } else { |
+ join0(); |
+ } |
+ } catch (e6) { |
+ completer0.completeError(e6); |
+ } |
}); |
+ return completer0.future; |
} |
String _formatExecutable(AssetId id) => |
log.bold("${id.package}:${path.basenameWithoutExtension(id.path)}"); |