blob: c9582c58014f0c3654ecc64109054705bd8499b6 [file] [log] [blame]
#!/usr/bin/env python3
from subprocess import check_output
import glob
import os
import shutil
def generateProtobufs(output):
bazel_bin = check_output(['bazel', 'info', 'bazel-bin']).decode().strip()
go_protos = check_output([
'bazel',
'query',
'kind("go_proto_library", ...)',
]).split()
check_output(['bazel', 'build', '-c', 'fastbuild'] + go_protos)
for rule in go_protos:
rule_dir = rule.decode()[2:].rsplit(':')[0]
input_dir = os.path.join(bazel_bin, rule_dir, 'pkg_go_proto_',
'github.com/cncf/xds/go', rule_dir)
input_files = glob.glob(os.path.join(input_dir, '*.go'))
output_dir = os.path.join(output, rule_dir)
# Ensure the output directory exists
os.makedirs(output_dir, 0o755, exist_ok=True)
for generated_file in input_files:
output_file = shutil.copy(generated_file, output_dir)
os.chmod(output_file, 0o644)
if __name__ == "__main__":
workspace = check_output(['bazel', 'info', 'workspace']).decode().strip()
output = os.path.join(workspace, 'go')
generateProtobufs(output)