runStreaming method

Future<int> runStreaming(
  1. String executable,
  2. List<String> arguments, {
  3. String? workingDirectory,
  4. Map<String, String>? environment,
})

Run a command and stream output in real-time

Implementation

Future<int> runStreaming(
  String executable,
  List<String> arguments, {
  String? workingDirectory,
  Map<String, String>? environment,
}) async {
  if (showVerbose) {
    verbose('Running (streaming): $executable ${arguments.join(' ')}');
  }

  final Process process = await Process.start(
    executable,
    arguments,
    workingDirectory: workingDirectory,
    environment: environment,
    runInShell: Platform.isWindows,
  );

  // Stream stdout and stderr
  process.stdout.listen((List<int> data) => stdout.add(data));
  process.stderr.listen((List<int> data) => stderr.add(data));

  return await process.exitCode;
}