update at 2026-02-08 18:28:39

This commit is contained in:
douboer
2026-02-08 18:28:39 +08:00
parent e2a46e413a
commit 0f5a7f0d85
97 changed files with 22029 additions and 59 deletions

112
scripts/deploy-assets.sh Executable file
View File

@@ -0,0 +1,112 @@
#!/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