summaryrefslogtreecommitdiffhomepage
path: root/tools/grpc/genproto.sh
blob: 28b3497edbb50fdc63a446dddf25eaa790acc670 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env bash -x
# stolen from prometheus
#
# Generate all protobuf bindings.
# Run from repository root.

set -e
set -u

if ! [[ "$0" =~ "tools/grpc/genproto.sh" ]]; then
	echo "must be run from repository root"
	exit 255
fi

if ! [[ $(protoc --version) =~ "3.7.1" ]]; then
	echo "could not find protoc 3.7.1, is it installed + in PATH?"
	exit 255
fi

echo "installing plugins"
GO111MODULE=on go mod download

INSTALL_PKGS="github.com/golang/protobuf/protoc-gen-go"
for pkg in ${INSTALL_PKGS}; do
    GO111MODULE=on go install "$pkg"
done

GOBGP="${PWD}"
GOPROTO="$(GO111MODULE=on go list -f '{{ .Dir }}' -m github.com/golang/protobuf)"

echo "generating code"
protoc -I "${GOPROTO}"/ptypes \
       -I "${GOBGP}"/api \
       --go_out=plugins=grpc:${GOBGP}/api "${GOBGP}"/api/*.proto