diff --git a/dev/devicelab/lib/tasks/entrypoint_dart_registrant.dart b/dev/devicelab/lib/tasks/entrypoint_dart_registrant.dart index 83971f2590a..b07bce22a4e 100644 --- a/dev/devicelab/lib/tasks/entrypoint_dart_registrant.dart +++ b/dev/devicelab/lib/tasks/entrypoint_dart_registrant.dart @@ -72,8 +72,19 @@ Future _runWithTempDir(Directory tempDir) async { completer.complete(line); } }); - final String entrypoint = await completer.future; + final StreamSubscription stderrSub = process.stderr + .transform(const Utf8Decoder()) + .transform(const LineSplitter()) + .listen((String line) async { + print(line); + }); + final Object result = await Future.any(>[completer.future, process.exitCode]); + if (result is int) { + throw Exception('flutter run failed, exitCode=$result'); + } + final String entrypoint = result as String; await stdoutSub.cancel(); + await stderrSub.cancel(); process.stdin.write('q'); await process.stdin.flush(); process.kill(ProcessSignal.sigint);