desc_rawproto_wrapper.py 901 B

12345678910111213141516171819202122232425262728293031323334
  1. import argparse
  2. import shutil
  3. import subprocess
  4. import sys
  5. def parse_args():
  6. parser = argparse.ArgumentParser()
  7. parser.add_argument('--desc-output', required=True)
  8. parser.add_argument('--rawproto-output', required=True)
  9. parser.add_argument('--proto-file', required=True)
  10. parser.add_argument('args', nargs='+')
  11. return parser.parse_args()
  12. def main(args):
  13. cmd = list(args.args)
  14. cmd.append(f'--descriptor_set_out={args.desc_output}')
  15. cmd.append(args.proto_file)
  16. try:
  17. subprocess.check_output(cmd, stdin=None, stderr=subprocess.STDOUT, text=True)
  18. except subprocess.CalledProcessError as e:
  19. sys.stderr.write(f'{e.cmd} returned non-zero exit code {e.returncode}.\n{e.output}\n')
  20. return e.returncode
  21. shutil.copyfile(args.proto_file, args.rawproto_output)
  22. return 0
  23. if __name__ == '__main__':
  24. sys.exit(main(parse_args()))