15
15
16
16
set -eu -o pipefail
17
17
18
- WORKDIR=$( mktemp -d)
18
+ export WORKDIR=$( mktemp -d)
19
19
20
20
function finish {
21
21
rm -rf " $WORKDIR "
22
22
}
23
23
trap finish EXIT
24
24
25
- export GOBIN=${WORKDIR} /bin
26
- export PATH=${GOBIN} :${PATH}
27
- mkdir -p ${GOBIN}
25
+ export GOBIN=" ${WORKDIR} " /bin
26
+ export PATH=" ${GOBIN} :${PATH} "
27
+ mkdir -p " ${GOBIN} "
28
28
29
29
echo " remove existing generated files"
30
30
# grpc_testing_not_regenerate/*.pb.go is not re-generated,
@@ -38,39 +38,52 @@ echo "go install cmd/protoc-gen-go-grpc"
38
38
(cd cmd/protoc-gen-go-grpc && go install .)
39
39
40
40
echo " git clone https://github.com/grpc/grpc-proto"
41
- git clone --quiet https://github.com/grpc/grpc-proto ${WORKDIR} /grpc-proto
41
+ git clone --quiet https://github.com/grpc/grpc-proto " ${WORKDIR} " /grpc-proto
42
42
43
43
echo " git clone https://github.com/protocolbuffers/protobuf"
44
- git clone --quiet https://github.com/protocolbuffers/protobuf ${WORKDIR} /protobuf
44
+ git clone --quiet https://github.com/protocolbuffers/protobuf " ${WORKDIR} " /protobuf
45
45
46
46
# Pull in code.proto as a proto dependency
47
- mkdir -p ${WORKDIR} /googleapis/google/rpc
47
+ mkdir -p " ${WORKDIR} " /googleapis/google/rpc
48
48
echo " curl https://raw.githubusercontent.com/googleapis/googleapis/master/google/rpc/code.proto"
49
- curl --silent https://raw.githubusercontent.com/googleapis/googleapis/master/google/rpc/code.proto > ${WORKDIR} /googleapis/google/rpc/code.proto
49
+ curl --silent https://raw.githubusercontent.com/googleapis/googleapis/master/google/rpc/code.proto > " ${WORKDIR} " /googleapis/google/rpc/code.proto
50
50
51
- mkdir -p ${WORKDIR} /out
51
+ source ./protoc_installer.sh
52
+ download_protoc
53
+
54
+ export PATH=" $PATH :$GOBIN "
55
+
56
+ PROTOC_PATH=" /usr/local/bin"
57
+ if [[ " :$PATH :" != * " :$PROTOC_PATH :" * ]]; then
58
+ export PATH=" $PATH :$PROTOC_PATH "
59
+ echo " protoc added to your PATH. You might need to open a new terminal"
60
+ else
61
+ echo " protoc already appears to be on your PATH"
62
+ fi
63
+
64
+ mkdir -p " ${WORKDIR} /out"
52
65
53
66
# Generates sources without the embed requirement
54
67
LEGACY_SOURCES=(
55
- ${WORKDIR} /grpc-proto/grpc/binlog/v1/binarylog.proto
56
- ${WORKDIR} /grpc-proto/grpc/channelz/v1/channelz.proto
57
- ${WORKDIR} /grpc-proto/grpc/health/v1/health.proto
58
- ${WORKDIR} /grpc-proto/grpc/lb/v1/load_balancer.proto
68
+ " ${WORKDIR} /grpc-proto/grpc/binlog/v1/binarylog.proto"
69
+ " ${WORKDIR} /grpc-proto/grpc/channelz/v1/channelz.proto"
70
+ " ${WORKDIR} /grpc-proto/grpc/health/v1/health.proto"
71
+ " ${WORKDIR} /grpc-proto/grpc/lb/v1/load_balancer.proto"
59
72
profiling/proto/service.proto
60
- ${WORKDIR} /grpc-proto/grpc/reflection/v1alpha/reflection.proto
61
- ${WORKDIR} /grpc-proto/grpc/reflection/v1/reflection.proto
73
+ " ${WORKDIR} /grpc-proto/grpc/reflection/v1alpha/reflection.proto"
74
+ " ${WORKDIR} /grpc-proto/grpc/reflection/v1/reflection.proto"
62
75
)
63
76
64
77
# Generates only the new gRPC Service symbols
65
78
SOURCES=(
66
79
$( git ls-files --exclude-standard --cached --others " *.proto" | grep -v ' ^\(profiling/proto/service.proto\|reflection/grpc_reflection_v1alpha/reflection.proto\)$' )
67
- ${WORKDIR} /grpc-proto/grpc/gcp/altscontext.proto
68
- ${WORKDIR} /grpc-proto/grpc/gcp/handshaker.proto
69
- ${WORKDIR} /grpc-proto/grpc/gcp/transport_security_common.proto
70
- ${WORKDIR} /grpc-proto/grpc/lookup/v1/rls.proto
71
- ${WORKDIR} /grpc-proto/grpc/lookup/v1/rls_config.proto
72
- ${WORKDIR} /grpc-proto/grpc/testing/* .proto
73
- ${WORKDIR} /grpc-proto/grpc/core/* .proto
80
+ " ${WORKDIR} /grpc-proto/grpc/gcp/altscontext.proto"
81
+ " ${WORKDIR} /grpc-proto/grpc/gcp/handshaker.proto"
82
+ " ${WORKDIR} /grpc-proto/grpc/gcp/transport_security_common.proto"
83
+ " ${WORKDIR} /grpc-proto/grpc/lookup/v1/rls.proto"
84
+ " ${WORKDIR} /grpc-proto/grpc/lookup/v1/rls_config.proto"
85
+ " ${WORKDIR} /grpc-proto/grpc/testing/*.proto"
86
+ " ${WORKDIR} /grpc-proto/grpc/core/*.proto"
74
87
)
75
88
76
89
# These options of the form 'Mfoo.proto=bar' instruct the codegen to use an
@@ -93,31 +106,31 @@ Mgrpc/testing/empty.proto=google.golang.org/grpc/interop/grpc_testing
93
106
94
107
for src in ${SOURCES[@]} ; do
95
108
echo " protoc ${src} "
96
- protoc --go_out=${OPTS} :${WORKDIR} /out --go-grpc_out=${OPTS} :${WORKDIR} /out \
109
+ protoc --go_out=" ${OPTS} :${WORKDIR} /out" --go-grpc_out=" ${OPTS} :${WORKDIR} /out" \
97
110
-I" ." \
98
- -I${WORKDIR} /grpc-proto \
99
- -I${WORKDIR} /googleapis \
100
- -I${WORKDIR} /protobuf/src \
101
- ${src}
111
+ -I" ${WORKDIR} /grpc-proto" \
112
+ -I" ${WORKDIR} /googleapis" \
113
+ -I" ${WORKDIR} /protobuf/src" \
114
+ " ${src} "
102
115
done
103
116
104
117
for src in ${LEGACY_SOURCES[@]} ; do
105
118
echo " protoc ${src} "
106
- protoc --go_out=${OPTS} :${WORKDIR} /out --go-grpc_out=${OPTS} ,require_unimplemented_servers=false:${WORKDIR} /out \
119
+ protoc --go_out=" ${OPTS} :${WORKDIR} " /out --go-grpc_out=" ${OPTS} " ,require_unimplemented_servers=false:" ${WORKDIR} /out" \
107
120
-I" ." \
108
- -I${WORKDIR} /grpc-proto \
109
- -I${WORKDIR} /googleapis \
110
- -I${WORKDIR} /protobuf/src \
111
- ${src}
121
+ -I" ${WORKDIR} /grpc-proto" \
122
+ -I" ${WORKDIR} /googleapis" \
123
+ -I" ${WORKDIR} /protobuf/src" \
124
+ " ${src} "
112
125
done
113
126
114
127
# The go_package option in grpc/lookup/v1/rls.proto doesn't match the
115
128
# current location. Move it into the right place.
116
- mkdir -p ${WORKDIR} /out/google.golang.org/grpc/internal/proto/grpc_lookup_v1
117
- mv ${WORKDIR} /out/google.golang.org/grpc/lookup/grpc_lookup_v1/* ${WORKDIR} /out/google.golang.org/grpc/internal/proto/grpc_lookup_v1
129
+ mkdir -p " ${WORKDIR} /out/google.golang.org/grpc/internal/proto/grpc_lookup_v1"
130
+ mv " ${WORKDIR} /out/google.golang.org/grpc/lookup/grpc_lookup_v1/*" " ${WORKDIR} /out/google.golang.org/grpc/internal/proto/grpc_lookup_v1"
118
131
119
132
# grpc_testing_not_regenerate/*.pb.go are not re-generated,
120
133
# see grpc_testing_not_regenerate/README.md for details.
121
- rm ${WORKDIR} /out/google.golang.org/grpc/reflection/grpc_testing_not_regenerate/* .pb.go
134
+ rm " ${WORKDIR} /out/google.golang.org/grpc/reflection/grpc_testing_not_regenerate/*.pb.go"
122
135
123
- cp -R ${WORKDIR} /out/google.golang.org/grpc/* .
136
+ cp -R " ${WORKDIR} /out/google.golang.org/grpc/*" .
0 commit comments