80 lines
2.1 KiB
Bash
80 lines
2.1 KiB
Bash
#!/bin/bash
|
|
# 编译 Gateway、AssetService 并重启
|
|
|
|
set -e
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} 编译并重启${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo ""
|
|
|
|
# 1. 编译 Gateway
|
|
echo -e "${YELLOW}[1/4] 编译 Gateway...${NC}"
|
|
cd "$SCRIPT_DIR/gateway"
|
|
if go build -o gateway . 2>&1; then
|
|
echo -e "${GREEN}✓ Gateway 编译成功${NC}"
|
|
else
|
|
echo -e "${RED}✗ Gateway 编译失败${NC}"
|
|
exit 1
|
|
fi
|
|
cd "$SCRIPT_DIR"
|
|
echo ""
|
|
|
|
# 2. 编译 AssetService
|
|
echo -e "${YELLOW}[2/4] 编译 AssetService...${NC}"
|
|
cd "$SCRIPT_DIR/services/assetService"
|
|
if go build -o assetService . 2>&1; then
|
|
echo -e "${GREEN}✓ AssetService 编译成功${NC}"
|
|
else
|
|
echo -e "${RED}✗ AssetService 编译失败${NC}"
|
|
exit 1
|
|
fi
|
|
cd "$SCRIPT_DIR"
|
|
echo ""
|
|
|
|
# 3. 停止旧进程
|
|
echo -e "${YELLOW}[3/4] 停止旧进程...${NC}"
|
|
pkill -f "gateway" 2>/dev/null || true
|
|
pkill -f "assetService" 2>/dev/null || true
|
|
pkill -f "go run main.go" 2>/dev/null || true
|
|
sleep 2
|
|
echo -e "${GREEN}✓ 已停止${NC}"
|
|
echo ""
|
|
|
|
# 4. 启动服务(按依赖顺序)
|
|
echo -e "${YELLOW}[4/4] 启动服务...${NC}"
|
|
|
|
# AssetService
|
|
cd "$SCRIPT_DIR/services/assetService"
|
|
./assetService > /tmp/assetService.log 2>&1 &
|
|
echo -e "${GREEN}✓ AssetService 已启动${NC}"
|
|
cd "$SCRIPT_DIR"
|
|
sleep 1
|
|
|
|
# Gateway
|
|
cd "$SCRIPT_DIR/gateway"
|
|
./gateway > /tmp/gateway.log 2>&1 &
|
|
echo -e "${GREEN}✓ Gateway 已启动${NC}"
|
|
cd "$SCRIPT_DIR"
|
|
sleep 2
|
|
|
|
# 检查
|
|
echo ""
|
|
if curl -s http://localhost:8080/health > /dev/null 2>&1; then
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo -e "${GREEN} 编译并重启完成${NC}"
|
|
echo -e "${GREEN}========================================${NC}"
|
|
echo " Gateway: http://localhost:8080"
|
|
echo " 日志: tail -f /tmp/gateway.log"
|
|
else
|
|
echo -e "${YELLOW}Gateway 可能仍在启动,请稍后检查: curl http://localhost:8080/health${NC}"
|
|
fi
|
|
echo ""
|