buildRunnerServe function
Runs pub run build_runner serve
with args
.
Returns a future that will resolve with the exitCode
of the build_runner
process.
buildSucceededSink
will be notified of each succeeded build.
served
will be completed when the build_runner
starts serving.
Implementation
Future<int> buildRunnerServe(List<String> args, Sink<Null> buildSucceededSink,
Completer<Null> served) async {
final proc = await Process.start(
_pubBin.path, new List.from(_buildRunnerServePubArgs)..addAll(args));
final log = new Logger(loggers.buildRunner);
// The listener for this logger can resolve the log level based on the prefix,
// so the log level from this logger doesn't matter much.
proc.stdout
.transform(UTF8.decoder)
.transform(_branchSucceededBuildTo(buildSucceededSink))
.transform(_detectServing(served))
.listen(log.info);
proc.stderr.transform(UTF8.decoder).listen(log.severe);
return proc.exitCode;
}