tared_protoc.py 667 B

12345678910111213141516171819202122232425262728293031
  1. import os
  2. import optparse
  3. import tarfile
  4. import contextlib
  5. import subprocess as sp
  6. def parse_args():
  7. parser = optparse.OptionParser()
  8. parser.disable_interspersed_args()
  9. parser.add_option('--tar-output')
  10. parser.add_option('--protoc-out-dir')
  11. return parser.parse_args()
  12. def main():
  13. opts, args = parse_args()
  14. assert opts.tar_output
  15. assert opts.protoc_out_dir
  16. if not os.path.exists(opts.protoc_out_dir):
  17. os.makedirs(opts.protoc_out_dir)
  18. sp.check_call(args)
  19. with contextlib.closing(tarfile.open(opts.tar_output, 'w')) as tf:
  20. tf.add(opts.protoc_out_dir, arcname='')
  21. if __name__ == '__main__':
  22. main()