#!/bin/bash # 软著代码导出脚本 # 目标路径 OUTPUT_DIR="/Users/lishunqin/Desktop/桃金娘/软著申请相关/德育大模型" OUTPUT_FILE="$OUTPUT_DIR/sunnyfarm.txt" # 创建输出目录 mkdir -p "$OUTPUT_DIR" # 清空或创建输出文件 > "$OUTPUT_FILE" echo "======================================" echo "开始导出软著代码" echo "======================================" # 函数:添加文件到输出,删除空白行 add_file() { local file=$1 local relative_path=${file#./} echo "" >> "$OUTPUT_FILE" echo "// ==================== $relative_path ====================" >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" # 删除空白行并追加到输出文件 grep -v '^[[:space:]]*$' "$file" >> "$OUTPUT_FILE" echo "✓ 已添加: $relative_path" } # 1. 导出后端Java代码 echo "" echo "【第一部分:后端Java代码】" echo "------------------------------" # 导出Java源码文件 find ./backend/src/main/java -type f -name "*.java" | sort | while read file; do add_file "$file" done # 2. 导出后端配置文件 echo "" echo "【第二部分:后端配置文件】" echo "------------------------------" # 导出yml配置文件(排除备份文件) find ./backend/src/main/resources -type f \( -name "*.yml" -o -name "*.yaml" \) \ ! -name "*.bak*" ! -name "*.backup*" ! -name "*.example" ! -name "*.template" | sort | while read file; do add_file "$file" done # 导出XML映射文件 find ./backend/src/main/resources/mapper -type f -name "*.xml" 2>/dev/null | sort | while read file; do add_file "$file" done # 导出pom.xml if [ -f "./backend/pom.xml" ]; then add_file "./backend/pom.xml" fi # 3. 导出前端代码 echo "" echo "【第三部分:前端Vue/JS代码】" echo "------------------------------" # 导出Vue组件 find ./frontend/src -type f -name "*.vue" \ ! -name "*.bak*" ! -name "*.backup*" | sort | while read file; do add_file "$file" done # 导出JS文件 find ./frontend/src -type f -name "*.js" | sort | while read file; do add_file "$file" done # 4. 导出前端配置文件 echo "" echo "【第四部分:前端配置文件】" echo "------------------------------" # package.json if [ -f "./frontend/package.json" ]; then add_file "./frontend/package.json" fi # vite.config.js if [ -f "./frontend/vite.config.js" ]; then add_file "./frontend/vite.config.js" fi # index.html if [ -f "./frontend/index.html" ]; then add_file "./frontend/index.html" fi # 统计信息 echo "" echo "======================================" echo "导出完成!" echo "======================================" echo "输出文件: $OUTPUT_FILE" echo "" # 统计代码行数 total_lines=$(wc -l < "$OUTPUT_FILE") echo "总行数: $total_lines" # 统计文件大小 file_size=$(du -h "$OUTPUT_FILE" | cut -f1) echo "文件大小: $file_size" # 统计各部分文件数量 java_count=$(grep -c "\.java ==" "$OUTPUT_FILE" || echo "0") vue_count=$(grep -c "\.vue ==" "$OUTPUT_FILE" || echo "0") js_count=$(grep -c "\.js ==" "$OUTPUT_FILE" || echo "0") xml_count=$(grep -c "\.xml ==" "$OUTPUT_FILE" || echo "0") echo "" echo "文件统计:" echo " Java文件: $java_count" echo " Vue文件: $vue_count" echo " JS文件: $js_count" echo " XML文件: $xml_count" echo "" echo "✅ 代码导出成功!"