gitBytes function

Future<List<int>> gitBytes(
  1. String repo,
  2. List<String> args, {
  3. List<int>? inputBytes,
  4. Map<String, String>? envExtra,
})

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;
}