#!/bin/bash # Каталог проекта (по умолчанию текущая директория) PROJECT_DIR="${1:-.}" OUTPUT_FILE="llm_code_dump.md" echo "Сбор кодовой базы для LLM ревью из: $PROJECT_DIR" echo "Создание файла: $OUTPUT_FILE" # Инициализируем файл echo "# Codebase Dump" > "$OUTPUT_FILE" echo "Дата создания: $(date +"\%Y-\%m-\%d \%H:\%M:\%S")" >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" echo "## Структура проекта" >> "$OUTPUT_FILE" # Выводим структуру одной строкой для надежности find "$PROJECT_DIR" -type d \( -name "target" -o -name "__pycache__" -o -name ".git" -o -name "venv" -o -name ".venv" -o -name "node_modules" \) -prune -o -print >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" echo "## Исходный код" >> "$OUTPUT_FILE" # Ищем нужные файлы без переносов строк (\), чтобы избежать ошибки с пробелами find "$PROJECT_DIR" -type d \( -name "target" -o -name "__pycache__" -o -name ".git" -o -name "venv" -o -name ".venv" -o -name "node_modules" \) -prune -o -type f \( -name "*.rs" -o -name "Cargo.toml" -o -name "Cargo.lock" -o -name "*.py" -o -name "requirements.txt" -o -name "*.html" -o -name "*.css" -o -name "*.js" \) -print0 | while IFS= read -r -d '' file; do echo "Обработка: $file" echo "### Файл: \`$file\`" >> "$OUTPUT_FILE" # Определяем расширение для подсветки синтаксиса в Markdown ext="${file##*.}" case "$ext" in rs) lang="rust" ;; py) lang="python" ;; html) lang="html" ;; css) lang="css" ;; js) lang="javascript" ;; toml|lock) lang="toml" ;; txt) lang="text" ;; *) lang="" ;; esac # Записываем содержимое файла echo '```'"$lang" >> "$OUTPUT_FILE" cat "$file" >> "$OUTPUT_FILE" echo '```' >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" echo "---" >> "$OUTPUT_FILE" echo "" >> "$OUTPUT_FILE" done echo "✅ Готово! Весь код собран в файл $OUTPUT_FILE"