From 0df6af242a6283a62e8a1d5ed4ac270abf0a3cb6 Mon Sep 17 00:00:00 2001 From: eson <9673575+githubcontent@user.noreply.gitee.com> Date: Mon, 6 Nov 2023 12:16:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9C=80=E6=96=B0=E7=9A=84?= =?UTF-8?q?=20gateway=20=E8=87=AA=E5=8A=A8=E5=8C=96=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +++- proto | 2 +- protoc.sh | 45 ++++++++++++++++++++++++++++++++++++++++++++- server/.gitignore | 2 ++ 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 server/.gitignore diff --git a/.gitignore b/.gitignore index f035fd7..6404aae 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,6 @@ gen __debug_* -runtime.* \ No newline at end of file +runtime.* + +screenlog.* diff --git a/proto b/proto index 74c6192..54b1fc0 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 74c61920512e7e694435c72435c3abf9a874ad5a +Subproject commit 54b1fc00c81f4d0e78d84dc303185ff8dee677e4 diff --git a/protoc.sh b/protoc.sh index 6d8998d..22c22c5 100755 --- a/protoc.sh +++ b/protoc.sh @@ -1,2 +1,45 @@ #! /bin/bash -go run -gcflags="-N" proto/goutils/proto_build/main.go gateway \ No newline at end of file + +# 获取当前脚本的全局路径 +script_path=$(realpath "$0") + +# 获取当前脚本的目录 +script_dir=$(dirname "$script_path") + +echo "123 $script_dir" +cd $script_dir/proto +git pull origin master +cd $script_dir +go run -gcflags="-N" proto/goutils/proto_build/main.go gateway + +run_server() { + server_name="server" + gateway_name="grpc-gateway" + + # 导航到相应的目录 + cd $script_dir/server + echo "build $gateway_name" + go build + + # 如果之前存在相同名字的 screen 会话,先将其终止 + # 首先尝试关闭已存在的screen会话 + existing_session=$(screen -ls | grep -w "$gateway_name") + if [ -n "$existing_session" ]; then + echo "Terminating existing screen session for $gateway_name" + screen -S "$gateway_name" -X quit + while [[ $(screen -ls | grep "\.$gateway_name\s") ]]; do + sleep 0.1s # 等待0.1秒后再次检查 + echo "wait for $gateway_name" + done + fi + + # 循环检查screen进程是否存在 + + [ -f .gitignore ] || (echo "server" > .gitignore && echo "main" >> .gitignore) + # 使用 screen 运行 go run .go + + echo "Running $gateway_name" + screen -dmS $gateway_name -L ./$server_name +} + +run_server \ No newline at end of file diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 0000000..0767964 --- /dev/null +++ b/server/.gitignore @@ -0,0 +1,2 @@ +server +main