runCommandStreaming method
Implementation
Future<RunnerProcessResult> runCommandStreaming(
String command,
List<String> arguments,
) async {
try {
final process = await Process.start(
command,
arguments,
workingDirectory: workingDirectory,
runInShell: Platform.isWindows,
);
final stdoutBuffer = StringBuffer();
final stderrBuffer = StringBuffer();
process.stdout.listen((data) {
final output = String.fromCharCodes(data);
stdoutBuffer.write(output);
if (verbose) stdout.write(output);
});
process.stderr.listen((data) {
final output = String.fromCharCodes(data);
stderrBuffer.write(output);
if (verbose) stderr.write(output);
});
final exitCode = await process.exitCode;
return RunnerProcessResult(
exitCode: exitCode,
stdout: stdoutBuffer.toString(),
stderr: stderrBuffer.toString(),
);
} catch (e) {
return RunnerProcessResult(
exitCode: -1,
stdout: '',
stderr: e.toString(),
);
}
}