project_scanner
Описание
Утилита командной строки на Go для сканирования директории проекта, сбора информации о его структуре, именах файлов и их содержимом. Результаты сохраняются в текстовый файл.
Языки
- Go100%
Сканер структуры и содержимого проекта на Go
Утилита командной строки на Go для сканирования директории проекта, сбора информации о его структуре, именах файлов и их содержимом. Результаты сохраняются в текстовый файл.
Основные возможности
- Полное сканирование проекта: По умолчанию сканирует указанную корневую директорию проекта или родительскую директорию от места запуска скрипта.
- Выборочное сканирование директорий: Позволяет указать одну или несколько конкретных директорий внутри проекта для сканирования с помощью флага
.-dirs - Игнорирование специфичных файлов и директорий:
- Автоматически пропускает директории
,.git,.vscode..idea - Игнорирует директорию, в которой находится сам исполняемый файл сканера (если она является поддиректорией сканируемого проекта).
- Игнорирует сам исполняемый файл сканера.
- Игнорирует собственный файл отчета (
).project_structure*.txt
- Автоматически пропускает директории
- Детализированный отчет: Генерирует текстовый файл (
или с инкрементальным суффиксом), содержащий:project_structure.txt- Общую информацию о сканировании (целевая директория, время генерации).
- Схематичное древовидное отображение структуры проекта с использованием псевдографики.
- Детальное содержимое каждого текстового файла (для бинарных файлов выводится заглушка
).[Бинарный файл]
- Автоматическое именование файлов отчета: Если файл отчета с именем
уже существует, новый файл будет создан с инкрементальным суффиксом (например,project_structure.txt,project_structure_1.txtи т.д.).project_structure_2.txt - Кроссплатформенность: Будучи написанным на Go, скрипт компилируется в один исполняемый файл, работающий на различных операционных системах без дополнительных зависимостей.
Начало работы
1. Требования
- Установленный Go (версия 1.16+ рекомендуется).
2. Подготовка файла
- Создайте отдельную директорию для сканера (например,
).scanner_tool - Поместите файл
в эту созданную директорию.project_scanner.go - Рекомендация по расположению: Для корректной работы автоматического определения пути к проекту, лучше всего размещать директорию сканера на одном уровне с корневой директорией сканируемого проекта (например,
иproject_A/в одной папке) или как непосредственную поддиректорию проекта (например,scanner_tool/).my_project/scanner_tool/
3. Запуск с go run (Рекомендуется)
Это основной и самый простой способ запуска сканера, не требующий предварительной компиляции.
- Откройте терминал в директории, где находится
.project_scanner.go - Выполните команду:
Подробное описание флагов и больше примеров смотрите в разделе "Флаги командной строки и Примеры использования" ниже.
4. Сборка исполняемого файла (Опционально)
Если вы хотите создать отдельный исполняемый файл:
- Убедитесь, что выполнены шаги "1. Требования" и "2. Подготовка файла".
- В терминале (в директории с
) выполните:project_scanner.go
Это создаст исполняемый файл(илиproject_scannerдля Windows).project_scanner.exe - Затем вы можете запускать этот файл напрямую:
../project_scanner [флаги]
Флаги командной строки и Примеры использования
Флаги командной строки:
: (Опционально) Указывает путь к корневой директории проекта, который нужно сканировать.-path <путь>- Если не указан, скрипт попытается сканировать родительскую директорию от текущей рабочей директории (полезно, если сканер лежит в подпапке проекта). Если это не удается, будет сканирована текущая рабочая директория.
: (Опционально) Список директорий (относительно корневой директории проекта), которые нужно включить в сканирование. Указываются через запятую. Пробелы вокруг запятых игнорируются.-dirs "<дир1>,<дир2/поддир3>,..."- Если флаг указан и содержит валидные пути, сканируются только эти директории и их содержимое.
- Если флаг не указан, или все указанные пути невалидны/не найдены, сканируется весь проект.
Примеры использования:
-
Сканирование всего проекта (сканер в корне проекта или
указывает на корень): Предположим,-pathнаходится вproject_scanner./path/to/your/project/ -
Сканирование всего проекта (сканер в поддиректории, например,
): Предположим,tools/находится вproject_scanner. Запуск из/path/to/your/project/tools/:tools/Или явно указать путь к проекту:
-
Сканирование только указанных директорий (
иsrc):docs/api -
Использование с
(для быстрой проверки без сборки): Находясь в директории сgo run:project_scanner.go
Формат файла отчета (project_structure.txt)
Файл отчета содержит следующие секции:
- Заголовок:
- "Сканирование структуры проекта"
- "Целевая директория: [путь к сканируемой корневой папке]"
- "Сгенерировано: [дата и время сканирования]"
- Структура проекта (схематично):
- Древовидное представление структуры директорий и файлов с использованием псевдографики.
- Иконки:
для директорий,📁для файлов.📄 - Пример:
📁 ИмяПроекта/ (Корень проекта) ├─ 📁 docs/ │ └─ 📄 README.md ├─ 📁 src/ │ ├─ 📁 components/ │ │ └─ 📄 Button.js │ └─ 📄 main.js └─ 📄 package.json
- Детальное содержимое файлов:
- Для каждого текстового файла в сканируемых директориях:
- 📄 Имя файла: [имя]
- Относительный путь: [путь от корня проекта]
- ----------------------------------------
- Содержимое файла:
- ----------------------------------------
- [содержимое файла]
- ----------------------------------------
- Для бинарных файлов вместо содержимого выводится
.[Бинарный файл]
- Для каждого текстового файла в сканируемых директориях:
Файл отчета создается в той же директории, из которой был запущен скрипт сканера.