#!/bin/bash # 结伴客后端文件清理脚本 # 删除不需要的文件,保持项目结构整洁 # 设置颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 配置参数 BACKEND_DIR="$(pwd)" # 显示警告信息 show_warning() { echo -e "${YELLOW}警告:此脚本将删除backend目录中不需要的文件。${NC}" echo -e "${YELLOW}请确保在运行此脚本前已备份重要数据。${NC}" echo -e "${BLUE}按Enter键继续,或按Ctrl+C取消...${NC}" read -r } # 删除指定文件 remove_file() { local file_path="$1" if [ -f "$file_path" ]; then echo -e "${BLUE}删除文件: $file_path${NC}" rm -f "$file_path" if [ $? -eq 0 ]; then echo -e "${GREEN}已删除: $file_path${NC}" else echo -e "${RED}删除失败: $file_path${NC}" fi else echo -e "${YELLOW}文件不存在: $file_path${NC}" fi } # 删除指定目录(如果为空) remove_empty_dir() { local dir_path="$1" if [ -d "$dir_path" ] && [ -z "$(ls -A "$dir_path")" ]; then echo -e "${BLUE}删除空目录: $dir_path${NC}" rm -d "$dir_path" if [ $? -eq 0 ]; then echo -e "${GREEN}已删除: $dir_path${NC}" else echo -e "${RED}删除失败: $dir_path${NC}" fi fi } # 清理测试文件 cleanup_test_files() { echo -e "${BLUE}\n清理测试相关文件...${NC}" remove_file "$BACKEND_DIR/test-api.js" remove_file "$BACKEND_DIR/test-swagger.js" # 可以保留scripts目录下的测试脚本,因为它们可能对开发有用 } # 清理文档文件 cleanup_docs() { echo -e "${BLUE}\n清理文档文件...${NC}" remove_file "$BACKEND_DIR/README_DEVELOPMENT.md" remove_file "$BACKEND_DIR/README_SCRIPTS.md" # 保留主要的README.md文件 } # 清理Docker相关文件 cleanup_docker_files() { echo -e "${BLUE}\n清理Docker相关文件...${NC}" remove_file "$BACKEND_DIR/docker-compose.yml" remove_file "$BACKEND_DIR/jiebanke.conf" } # 清理旧的启动脚本 cleanup_old_scripts() { echo -e "${BLUE}\n清理旧的启动脚本...${NC}" remove_file "$BACKEND_DIR/start.sh" remove_file "$BACKEND_DIR/stop.sh" remove_file "$BACKEND_DIR/restart.sh" remove_file "$BACKEND_DIR/status.sh" } # 清理临时文件和缓存 cleanup_temp_files() { echo -e "${BLUE}\n清理临时文件和缓存...${NC}" find "$BACKEND_DIR" -name "*.log" -exec rm -f {} \; find "$BACKEND_DIR" -name "*.tmp" -exec rm -f {} \; find "$BACKEND_DIR" -name "*.temp" -exec rm -f {} \; find "$BACKEND_DIR" -name ".DS_Store" -exec rm -f {} \; } # 验证并设置脚本权限 set_script_permissions() { echo -e "${BLUE}\n设置脚本执行权限...${NC}" # 为新创建的脚本设置执行权限 chmod +x "$BACKEND_DIR/sync_to_server.sh" 2>/dev/null chmod +x "$BACKEND_DIR/start_server.sh" 2>/dev/null chmod +x "$BACKEND_DIR/cleanup_files.sh" 2>/dev/null echo -e "${GREEN}脚本权限设置完成${NC}" } # 显示清理结果摘要 show_summary() { echo -e "${GREEN}\n文件清理完成!${NC}" echo -e "${YELLOW}剩余核心文件:${NC}" echo -e " - package.json, package-lock.json (项目依赖配置)" echo -e " - .env, .env.example (环境配置)" echo -e " - ecosystem.config.js (PM2配置)" echo -e " - src/ (源代码目录)" echo -e " - config/ (配置目录)" echo -e " - scripts/ (脚本目录)" echo -e " - README.md (项目说明)" echo -e " - sync_to_server.sh (新的同步脚本)" echo -e " - start_server.sh (新的服务器启动脚本)" echo -e " - cleanup_files.sh (此清理脚本)" } # 执行清理 main() { show_warning cleanup_test_files cleanup_docs cleanup_docker_files cleanup_old_scripts cleanup_temp_files set_script_permissions show_summary } # 执行主函数 main