diff --git a/get-dump.sh b/get-dump.sh new file mode 100644 index 0000000..0b799bb --- /dev/null +++ b/get-dump.sh @@ -0,0 +1,51 @@ +#!/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" \ No newline at end of file