generate_go_protobuf.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 
3 from subprocess import check_output
4 import glob
5 import os
6 import shutil
7 
8 def generateProtobufs(output):
9  bazel_bin = check_output(['bazel', 'info', 'bazel-bin']).decode().strip()
10 
11  go_protos = check_output([
12  'bazel',
13  'query',
14  'kind("go_proto_library", ...)',
15  ]).split()
16 
17  check_output(['bazel', 'build', '-c', 'fastbuild'] + go_protos)
18 
19  for rule in go_protos:
20  rule_dir = rule.decode()[2:].rsplit(':')[0]
21  input_dir = os.path.join(bazel_bin, rule_dir, 'pkg_go_proto_',
22  'github.com/cncf/xds/go', rule_dir)
23  input_files = glob.glob(os.path.join(input_dir, '*.go'))
24  output_dir = os.path.join(output, rule_dir)
25 
26  # Ensure the output directory exists
27  os.makedirs(output_dir, 0o755, exist_ok=True)
28  for generated_file in input_files:
29  output_file = shutil.copy(generated_file, output_dir)
30  os.chmod(output_file, 0o644)
31 
32 
33 if __name__ == "__main__":
34  workspace = check_output(['bazel', 'info', 'workspace']).decode().strip()
35  output = os.path.join(workspace, 'go')
36  generateProtobufs(output)
generate_go_protobuf.generateProtobufs
def generateProtobufs(output)
Definition: generate_go_protobuf.py:8
grpc._common.decode
def decode(b)
Definition: grpc/_common.py:75
split
static void split(const char *s, char ***ss, size_t *ns)
Definition: debug/trace.cc:111


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:23