gitBytes function
Implementation
Future<List<int>> gitBytes(String repo, List<String> args,
{List<int>? inputBytes, Map<String, String>? envExtra}) async {
final process = await Process.start('git', ['-C', repo, ...args],
environment: envExtra, includeParentEnvironment: true);
if (inputBytes != null) process.stdin.add(inputBytes);
await process.stdin.close();
final out = <int>[];
await for (final chunk in process.stdout) {
out.addAll(chunk);
}
await for (final _ in process.stderr) {}
final code = await process.exitCode;
if (code != 0) {
throw StateError('git ${args.first} failed in $repo');
}
return out;
}