1#!/usr/bin/env python3
2
3# Copyright 2022 Google LLC
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#     https://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17"""Build Pandora gRPC Bluetooth test interfaces."""
18
19import os
20import pkg_resources
21from grpc_tools import protoc
22
23build_directory = os.path.dirname(os.path.realpath(__file__))
24package_directory = f'{build_directory}/..'
25bt_test_interfaces_directory = f'{package_directory}/..'
26proto_directory = f'{bt_test_interfaces_directory}/pandora'
27
28
29def build():
30
31    os.environ['PATH'] = build_directory + ':' + os.environ['PATH']
32
33    proto_include = pkg_resources.resource_filename('grpc_tools', '_proto')
34
35    files = [
36        f'pandora/{f}' for f in os.listdir(proto_directory) if f.endswith('.proto')]
37    protoc.main([
38        'grpc_tools.protoc',
39        f'-I{bt_test_interfaces_directory}',
40        f'-I{proto_include}',
41        f'--python_out={package_directory}',
42        f'--custom_grpc_out={package_directory}',
43    ] + files)
44
45
46if __name__ == '__main__':
47    build()
48