From fd11523af9dad044628672c75776680048688249 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Tue, 18 Apr 2017 22:25:57 -0700 Subject: [PATCH] scripts: move gateway stubs into gw/ packages --- scripts/genproto.sh | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/scripts/genproto.sh b/scripts/genproto.sh index e42784745..43c2fe9a0 100755 --- a/scripts/genproto.sh +++ b/scripts/genproto.sh @@ -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