blob: ce9413e459ed5b7d17203298183a8ad6e20b0818 [file] [log] [blame]
"""Deletes the existing bindings, then rebuild using the source .proto file."""
import os
from shutil import copyfile
UP = '../'
PROTO_PATH = 'src/config/proto/chromiumos/config/api/test/tls/'
PROTO_NAME = 'common.proto'
BUILD_CMD = (
"python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. {}"
.format(PROTO_NAME))
def delete_old_protos():
"""Delete any existing protos or built proto bindings."""
for file in os.listdir('.'):
if 'common' in file:
os.remove(file)
def copy_proto_from_src():
"""Copy the proto from the src dir to the local dir."""
proto_dir = get_proto_dir()
if os.path.isfile(proto_dir):
copyfile(proto_dir, PROTO_NAME)
else:
raise Exception("Protos not found @ {}".format(proto_dir))
def get_proto_dir():
"""Return the full path of the common.proto from TLS."""
return "{}{}{}".format(UP * get_current_depth(), PROTO_PATH, PROTO_NAME)
def get_current_depth():
"""Return the current depth off /src/ within the file structure."""
dirs = os.getcwd().split('/')
src_level = dirs.index('src')
return len(dirs) - src_level
def create_bindings():
os.system(BUILD_CMD)
def main():
delete_old_protos()
copy_proto_from_src()
create_bindings()
if __name__ == "__main__":
main()