Files
font2pic/scripts/deploy-assets.sh
2026-02-08 18:28:39 +08:00

113 lines
2.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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