occlum/demos/golang/grpc_pingpong/prepare_ping_pong.sh
Lan Yun fbff05bddb Update the Golang version to 1.18.4 and use it as the default one.
Signed-off-by: Lan Yun <yun.lan@intel.com>
2022-08-08 12:18:33 +08:00

81 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
set -e
BLUE='\033[1;34m'
NC='\033[0m'
# sanity check
FILE_SET="
occlum_ping
occlum_pong
go.sum"
for CURR_FILE in $FILE_SET
do
if [ -f "$CURR_FILE" ]; then
rm $CURR_FILE
fi
done
DIR_SET="
github.com
occlum_ping_instance
occlum_pong_instance"
for CURR_DIR in $DIR_SET
do
if [ -d "$CURR_DIR" ]; then
rm -fr $CURR_DIR
fi
done
# enable Go modules for package management
GOVERSION=`occlum-go version|awk -F ' ' '{printf $3}'`
export GO111MODULE=on
if [[ $GOVERSION != 'go1.16.3' ]];then
rm -f go.mod
occlum-go mod init grpc_pingpong
occlum-go mod tidy
fi
# update PATH so that the protoc compiler can find the plugin:
export PATH="$PATH:$(go env GOPATH)/bin"
# assume that protoc is installed
if ! type "protoc" > /dev/null 2>&1; then
echo "Please install protoc"
exit 1
fi
# install protoc-gen-go and protoc-gen-go-grpc plugin
if ! type "protoc-gen-go" > /dev/null 2>&1; then
if [[ $GOVERSION != 'go1.16.3' ]];then
occlum-go get google.golang.org/protobuf/cmd/protoc-gen-go
occlum-go install google.golang.org/protobuf/cmd/protoc-gen-go
else
occlum-go get google.golang.org/protobuf/cmd/protoc-gen-go
fi
fi
if ! type "protoc-gen-go-grpc" > /dev/null 2>&1; then
if [[ $GOVERSION != 'go1.16.3' ]];then
occlum-go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
occlum-go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
else
occlum-go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
fi
fi
# compiling pingpong gRPC .proto file
export PATH=$PATH:$HOME/go/bin
export GOPRIVATE=github.com/occlum/demos/\*
protoc --proto_path=pingpong --go-grpc_out=. --go_out=. pingpong/pingpong.proto
# prepare occlum images
occlum-go mod download golang.org/x/net
occlum-go mod download google.golang.org/grpc
occlum-go mod download github.com/golang/protobuf
occlum-go mod download golang.org/x/sys
occlum-go mod download golang.org/x/text
occlum-go mod download google.golang.org/genproto
occlum-go mod download google.golang.org/protobuf
occlum-go build -o occlum_pong pong.go
occlum-go build -o occlum_ping ping.go