vibe-coding-cn/assets/repo/backups/一键备份.sh

84 lines
2.4 KiB
Bash
Raw Permalink 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
# 一键备份项目脚本
# 自动读取 .gitignore 规则并排除匹配的文件
# bash backups/一键备份.sh
set -e
# 颜色输出
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 项目根目录(脚本所在目录的父目录)
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
# 项目backups目录
BACKUPS_DIR="${PROJECT_ROOT}/backups"
# 备份脚本路径始终在项目的backups目录中
BACKUP_SCRIPT="${BACKUPS_DIR}/快速备份.py"
# 检查备份脚本是否存在
if [ ! -f "${BACKUP_SCRIPT}" ]; then
echo -e "${YELLOW}⚠️ 错误: 备份脚本不存在${NC}"
echo ""
echo "备份工具应位于项目的 backups/ 目录中:"
echo " ${BACKUPS_DIR}/"
echo ""
echo "请确保:"
echo " 1. 复制快速备份.py到 ${BACKUPS_DIR}/"
echo " 2. 复制一键备份.sh到 ${BACKUPS_DIR}/"
echo ""
echo "或者使用方式:"
echo " • 在项目根目录执行: bash backups/一键备份.sh"
echo " • 或直接执行: python3 backups/快速备份.py"
exit 1
fi
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} 项目快速备份工具${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
echo -e "${GREEN}${NC} 找到备份脚本: backups/快速备份.py"
# 检查 Python3 是否可用
if ! command -v python3 &> /dev/null; then
echo -e "${YELLOW}⚠️ 错误: 未找到 python3 命令${NC}"
exit 1
fi
echo -e "${GREEN}${NC} 项目目录: ${PROJECT_ROOT}"
echo -e "${GREEN}${NC} 备份脚本: ${BACKUP_SCRIPT}"
echo -e "${GREEN}${NC} Python 版本: $(python3 --version)"
echo ""
# 执行备份
echo -e "${YELLOW}▶ 正在执行备份...${NC}"
echo ""
# 切换到项目根目录
cd "${PROJECT_ROOT}"
# 运行备份脚本
python3 "${BACKUP_SCRIPT}"
# 检查执行结果
if [ $? -eq 0 ]; then
echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN} ✓ 备份完成!${NC}"
echo -e "${GREEN}========================================${NC}"
else
echo ""
echo -e "${YELLOW}========================================${NC}"
echo -e "${YELLOW} ✗ 备份失败${NC}"
echo -e "${YELLOW}========================================${NC}"
exit 1
fi