#!/bin/bash # Font2SVG 静态资源部署脚本 # 用于将图标和 logo 上传到 fonts.biboer.cn 服务器 set -e # 遇到错误立即退出 # ===== 配置区域 ===== SERVER="gavin@fonts.biboer.cn" REMOTE_DIR="/home/gavin/font2svg" LOCAL_ASSETS_DIR="assets" # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # ===== 函数定义 ===== log_info() { echo -e "${GREEN}[INFO]${NC} $1" } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } check_files() { log_info "检查本地文件..." if [ ! -d "$LOCAL_ASSETS_DIR/icons" ]; then log_error "图标目录不存在: $LOCAL_ASSETS_DIR/icons" exit 1 fi SVG_COUNT=$(find "$LOCAL_ASSETS_DIR/icons" -name "*.svg" | wc -l | tr -d ' ') PNG_COUNT=$(find "$LOCAL_ASSETS_DIR/icons" -name "*.png" | wc -l | tr -d ' ') log_info "发现 $SVG_COUNT 个 SVG 图标, $PNG_COUNT 个 PNG 图标" } create_remote_dirs() { log_info "创建远程目录..." ssh $SERVER "mkdir -p $REMOTE_DIR/assets/icons" } upload_assets() { log_info "上传静态资源到 $SERVER..." # 上传图标(SVG 和 PNG) rsync -avz --progress \ --include="*.svg" \ --include="*.png" \ --include="*/" \ --exclude="*" \ "$LOCAL_ASSETS_DIR/" "$SERVER:$REMOTE_DIR/assets/" log_info "静态资源上传完成" } set_permissions() { log_info "设置文件权限..." ssh $SERVER "chmod -R 755 $REMOTE_DIR/assets" log_info "权限设置完成" } verify_deployment() { log_info "验证部署..." # 检查目录是否存在 if ssh $SERVER "[ -d $REMOTE_DIR/assets/icons ]"; then log_info "✓ assets/icons 目录存在" else log_error "✗ assets/icons 目录不存在" exit 1 fi # 统计远程文件数量 REMOTE_SVG_COUNT=$(ssh $SERVER "find $REMOTE_DIR/assets/icons -name '*.svg' | wc -l" | tr -d ' ') REMOTE_PNG_COUNT=$(ssh $SERVER "find $REMOTE_DIR/assets/icons -name '*.png' | wc -l" | tr -d ' ') log_info "远程服务器上有 $REMOTE_SVG_COUNT 个 SVG, $REMOTE_PNG_COUNT 个 PNG" } show_urls() { log_info "==========================================" log_info "部署完成!资源 URL 示例:" log_info " Logo: https://fonts.biboer.cn/assets/webicon.png" log_info " 图标: https://fonts.biboer.cn/assets/icons/[图标名].svg" log_info "==========================================" } # ===== 主流程 ===== main() { log_info "开始部署 Font2SVG 静态资源..." echo "" check_files create_remote_dirs upload_assets set_permissions verify_deployment echo "" show_urls log_info "部署完成!" } # 运行主流程 main