++
This commit is contained in:
@@ -1,58 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
# MiroSociety 一键部署脚本 (依赖安装)
|
||||
# - 用 uv 创建后端 venv 并安装依赖
|
||||
# - 用 npm 安装前端依赖
|
||||
# 可重复执行,已安装会跳过。
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
BACKEND_DIR="$SCRIPT_DIR/backend"
|
||||
FRONTEND_DIR="$SCRIPT_DIR/frontend"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
log() { echo -e "${GREEN}[deploy.sh]${NC} $*"; }
|
||||
warn() { echo -e "${YELLOW}[deploy.sh]${NC} $*"; }
|
||||
err() { echo -e "${RED}[deploy.sh]${NC} $*" >&2; }
|
||||
|
||||
# --- 检查命令依赖 ---
|
||||
for cmd in uv npm node; do
|
||||
if ! command -v "$cmd" >/dev/null 2>&1; then
|
||||
err "缺少依赖命令: $cmd"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
VENV_DIR="$BACKEND_DIR/.venv"
|
||||
VENV_PY="$VENV_DIR/bin/python3"
|
||||
|
||||
# --- 后端: uv venv + pip install ---
|
||||
log "检查后端环境..."
|
||||
if [[ ! -x "$VENV_PY" ]]; then
|
||||
warn "未检测到 $VENV_DIR,使用 uv 创建 venv..."
|
||||
(cd "$BACKEND_DIR" && uv venv)
|
||||
fi
|
||||
|
||||
log "安装/更新后端依赖 (uv pip install -e .)..."
|
||||
(cd "$BACKEND_DIR" && uv pip install -e .)
|
||||
|
||||
# --- 前端: npm install ---
|
||||
log "检查前端环境..."
|
||||
if [[ ! -d "$FRONTEND_DIR/node_modules" ]]; then
|
||||
warn "未检测到 $FRONTEND_DIR/node_modules,开始 npm install..."
|
||||
(cd "$FRONTEND_DIR" && npm install)
|
||||
else
|
||||
log "$FRONTEND_DIR/node_modules 已存在,跳过 (如需重装请删除该目录)"
|
||||
fi
|
||||
|
||||
echo
|
||||
log "部署完成 ✓"
|
||||
echo -e " ${GREEN}后端 venv:${NC} $VENV_DIR"
|
||||
echo -e " ${GREEN}前端依赖:${NC} frontend/node_modules"
|
||||
echo
|
||||
#!/usr/bin/env bash
|
||||
# MiroSociety 一键部署脚本 (依赖安装)
|
||||
# - 用 uv 创建后端 venv 并安装依赖
|
||||
# - 用 npm 安装前端依赖
|
||||
# 可重复执行,已安装会跳过。
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
BACKEND_DIR="$SCRIPT_DIR/backend"
|
||||
FRONTEND_DIR="$SCRIPT_DIR/frontend"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
log() { echo -e "${GREEN}[deploy.sh]${NC} $*"; }
|
||||
warn() { echo -e "${YELLOW}[deploy.sh]${NC} $*"; }
|
||||
err() { echo -e "${RED}[deploy.sh]${NC} $*" >&2; }
|
||||
|
||||
# --- 检查命令依赖 ---
|
||||
for cmd in uv npm node; do
|
||||
if ! command -v "$cmd" >/dev/null 2>&1; then
|
||||
err "缺少依赖命令: $cmd"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
VENV_DIR="$BACKEND_DIR/.venv"
|
||||
VENV_PY="$VENV_DIR/bin/python3"
|
||||
|
||||
# --- 后端: uv venv + pip install ---
|
||||
log "检查后端环境..."
|
||||
if [[ ! -x "$VENV_PY" ]]; then
|
||||
warn "未检测到 $VENV_DIR,使用 uv 创建 venv..."
|
||||
(cd "$BACKEND_DIR" && uv venv)
|
||||
fi
|
||||
|
||||
log "安装/更新后端依赖 (uv pip install -e .)..."
|
||||
(cd "$BACKEND_DIR" && uv pip install -e .)
|
||||
|
||||
# --- 前端: npm install ---
|
||||
log "检查前端环境..."
|
||||
if [[ ! -d "$FRONTEND_DIR/node_modules" ]]; then
|
||||
warn "未检测到 $FRONTEND_DIR/node_modules,开始 npm install..."
|
||||
(cd "$FRONTEND_DIR" && npm install)
|
||||
else
|
||||
log "$FRONTEND_DIR/node_modules 已存在,跳过 (如需重装请删除该目录)"
|
||||
fi
|
||||
|
||||
echo
|
||||
log "部署完成 ✓"
|
||||
echo -e " ${GREEN}后端 venv:${NC} $VENV_DIR"
|
||||
echo -e " ${GREEN}前端依赖:${NC} frontend/node_modules"
|
||||
echo
|
||||
log "现在可以执行 ./start.sh 启动服务"
|
||||
Reference in New Issue
Block a user