#!/bin/bash # 部署图标到 CDN (fonts.biboer.cn) # 使用方法: ./deploy-icons.sh set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ICONS_DIR="$SCRIPT_DIR/frontend/src/assets/icons" REMOTE_USER="root" REMOTE_HOST="fonts.biboer.cn" REMOTE_PATH="/var/www/fonts" ICONS_REMOTE_PATH="$REMOTE_PATH/icons" echo "🚀 开始部署图标到 CDN..." echo "源目录: $ICONS_DIR" echo "目标: $REMOTE_HOST:$ICONS_REMOTE_PATH" echo "" # 检查源目录 if [ ! -d "$ICONS_DIR" ]; then echo "❌ 错误: 图标目录不存在 $ICONS_DIR" exit 1 fi # 统计文件数量 ICON_COUNT=$(find "$ICONS_DIR" -type f \( -name "*.svg" -o -name "*.png" \) | wc -l) echo "📦 找到 $ICON_COUNT 个图标文件" echo "" # 创建远程目录 echo "📁 创建远程目录..." ssh "$REMOTE_USER@$REMOTE_HOST" "mkdir -p $ICONS_REMOTE_PATH" # 上传图标文件(SVG 和 PNG) echo "📤 上传图标文件..." rsync -avz --progress \ --include="*.svg" \ --include="*.png" \ --exclude="*" \ "$ICONS_DIR/" \ "$REMOTE_USER@$REMOTE_HOST:$ICONS_REMOTE_PATH/" # 设置权限 echo "🔐 设置文件权限..." ssh "$REMOTE_USER@$REMOTE_HOST" "chmod -R 644 $ICONS_REMOTE_PATH/*" echo "" echo "✅ 部署完成!" echo "" echo "📝 图标访问地址示例:" echo " https://fonts.biboer.cn/icons/webicon.png" echo " https://fonts.biboer.cn/icons/font-icon.svg" echo "" echo "🔗 测试访问:" curl -I "https://fonts.biboer.cn/icons/webicon.png" 2>/dev/null | head -n 1 || echo "⚠️ 无法访问,请检查服务器配置"