Добавить get-dump.sh

This commit is contained in:
admin committed 2026-10-02 08:04:47 +00:00
1 parent 209a08265e
commit 008d00fde5
1 file changed
+51
+51
View File
@@ -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"