downloadProtocGenGrpcJava function

Future<String> downloadProtocGenGrpcJava(
  1. String protocGenGrpcJavaVersion
)

Implementation

Future<String> downloadProtocGenGrpcJava(
    String protocGenGrpcJavaVersion) async {
  final Directory _protocGenGrpcJavaTmpDir = Directory(path.join(
      _builderTmpDir, "protoc_gen_grpc_java", "v$protocGenGrpcJavaVersion"));

  final protocGenGrpcJavaName =
      "protoc-gen-grpc-java-$protocGenGrpcJavaVersion-${_getPlatform(false)}.exe";
  final protocGenGrpcJava = File(
    path.join(_protocGenGrpcJavaTmpDir.path, protocGenGrpcJavaName),
  );

  if (protocGenGrpcJava.existsSync()) {
    return protocGenGrpcJava.path;
  } else {
    if (!_protocGenGrpcJavaTmpDir.existsSync()) {
      await _protocGenGrpcJavaTmpDir.create(recursive: true);
    }

    Uri url = Uri.parse(
        "https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/$protocGenGrpcJavaVersion/$protocGenGrpcJavaName");
    await protocGenGrpcJava.writeAsBytes(await http.readBytes(url));

    if (protocGenGrpcJava.existsSync()) {
      if (!Platform.isWindows) {
        await ProcessUtil.runCommand('chmod', ['+x', protocGenGrpcJava.path]);
      }

      return protocGenGrpcJava.path;
    } else {
      throw AssertionError('protoc-gen-grpc-java is not exist.');
    }
  }
}