|
|
@@ -69,14 +69,30 @@ for dir in ${DIRS}; do
|
|
|
done
|
|
|
|
|
|
for pb in etcdserverpb/rpc api/v3lock/v3lockpb/v3lock api/v3election/v3electionpb/v3election; do
|
|
|
+ protobase="etcdserver/${pb}"
|
|
|
protoc -I. \
|
|
|
-I${GRPC_GATEWAY_ROOT}/third_party/googleapis \
|
|
|
-I${GOGOPROTO_PATH} \
|
|
|
-I${COREOS_ROOT} \
|
|
|
--grpc-gateway_out=logtostderr=true:. \
|
|
|
--swagger_out=logtostderr=true:./Documentation/dev-guide/apispec/swagger/. \
|
|
|
- ./etcdserver/${pb}.proto
|
|
|
- name=`basename ${pb}`
|
|
|
+ ${protobase}.proto
|
|
|
+ # hack to move gw files around so client won't include them
|
|
|
+ pkgpath=`dirname ${protobase}`
|
|
|
+ pkg=`basename ${pkgpath}`
|
|
|
+ gwfile="${protobase}.pb.gw.go"
|
|
|
+ sed -i.bak -E "s/package $pkg/package gw/g" ${gwfile}
|
|
|
+ sed -i.bak -E "s/protoReq /&$pkg\./g" ${gwfile}
|
|
|
+ sed -i.bak -E "s/, client /, client $pkg./g" ${gwfile}
|
|
|
+ sed -i.bak -E "s/Client /, client $pkg./g" ${gwfile}
|
|
|
+ sed -i.bak -E "s/[^(]*Client, runtime/${pkg}.&/" ${gwfile}
|
|
|
+ sed -i.bak -E "s/New[A-Za-z]*Client/${pkg}.&/" ${gwfile}
|
|
|
+ # darwin doesn't like newlines in sed...
|
|
|
+ sed -i.bak -E "s|import \(|& \"github.com/coreos/etcd/${pkgpath}\"|" ${gwfile}
|
|
|
+ mkdir -p ${pkgpath}/gw/
|
|
|
+ go fmt ${gwfile}
|
|
|
+ mv ${gwfile} ${pkgpath}/gw/
|
|
|
+ rm -f ./etcdserver/${pb}*.bak
|
|
|
mv Documentation/dev-guide/apispec/swagger/etcdserver/${pb}.swagger.json \
|
|
|
Documentation/dev-guide/apispec/swagger/${name}.swagger.json
|
|
|
done
|