lawless-client/scripts/deploy-docs-site.sh
2026-07-09 11:54:43 +08:00

47 行
1.3 KiB
Bash

#!/bin/bash
# 将构建好的文档站同步到服务器目录
# 支持本地部署和远程部署两种模式
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SITE_DIR="$ROOT_DIR/site"
# 部署目标配置
DEPLOY_MODE="${DEPLOY_MODE:-local}" # local 或 remote
DEPLOY_SERVER="${DEPLOY_SERVER:-106.54.23.149}"
DEPLOY_USER="${DEPLOY_USER:-root}"
DEPLOY_DIR="${DEPLOY_DIR:-/var/www/docs.xuqinmin.com/site}"
SSH_KEY="${SSH_KEY:-$HOME/.ssh/id_rsa}"
if [ ! -d "$SITE_DIR" ]; then
echo "错误: 未找到站点目录 $SITE_DIR"
echo "请先执行: make docs-build"
exit 1
fi
if ! command -v rsync >/dev/null 2>&1; then
echo "错误: 未检测到 rsync,请先安装 rsync"
exit 1
fi
case "$DEPLOY_MODE" in
local)
echo "本地部署模式..."
mkdir -p "$DEPLOY_DIR"
rsync -a --delete "$SITE_DIR"/ "$DEPLOY_DIR"/
echo "同步完成: $DEPLOY_DIR"
;;
remote)
echo "远程部署模式: ${DEPLOY_USER}@${DEPLOY_SERVER}:${DEPLOY_DIR}"
rsync -avz --delete \
-e "ssh -i $SSH_KEY -o StrictHostKeyChecking=no" \
"$SITE_DIR"/ "${DEPLOY_USER}@${DEPLOY_SERVER}:${DEPLOY_DIR}/"
echo "远程部署完成"
;;
*)
echo "错误: 未知的部署模式 '$DEPLOY_MODE',支持 local 或 remote"
exit 1
;;
esac