Runs the "protoc" command on the refactored Protobuf files to generate
    the source python/python3 files.

    Args:
        lang (str): the language to compile with "protoc"
                    (i.e. python, python3)
        output_dir (str): the output directory for the generated source files
        proto_path (str): the root protobuf build path in which to run "protoc"
        refactored_dir (str): the input directory of the Protobuf files

def protoc_command(lang, output_dir, proto_path, refactored_dir):
    """Runs the "protoc" command on the refactored Protobuf files to generate
    the source python/python3 files.

    Args:
        lang (str): the language to compile with "protoc"
                    (i.e. python, python3)
        output_dir (str): the output directory for the generated source files
        proto_path (str): the root protobuf build path in which to run "protoc"
        refactored_dir (str): the input directory of the Protobuf files
    """
    proto_files = glob.glob(os.path.join(refactored_dir, '*.proto'))
    cmd = ['protoc', '-I', proto_path, '--{}_out'.format(lang), output_dir]
    cmd.extend(proto_files)
    print(' '.join(cmd))
    p = subprocess.Popen(
        cmd, stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin,
        cwd=proto_path)
    p.communicate()