Утилита для сбора файлов из монорепозитория в единый документ с заголовками путей. Поддерживает мультиязычность (RU/EN/ZH), превью списка файлов, выбор конкретных директорий для обработки, гибкие исключения и интерактивный режим.
- Выбор конкретных папок: Сканирование и копирование файлов только из указанных подпапок (оптимизация обхода дерева).
- Превью (Preview): Оценка списка файлов до копирования с пагинацией и маркерами статусов (
[OK],[ИСКЛ],[СИСТ],[РАСШ],[НЕ ВКЛ]). - Мультиязычность: Интерфейс на русском, английском и китайском языках.
- Автоматическая настройка Unicode: Программа автоматически настраивает консоль Windows для корректного отображения русского, английского и китайского языков (UTF-8).
- Надёжная фильтрация путей: Использование канонических абсолютных путей гарантирует корректную работу независимо от формата ввода (относительные/абсолютные пути, с слешами или без).
- Безопасность: Строгая проверка UTF-8, защита от выхода за пределы директории.
- Производительность: Потоковый обход дерева, пропуск системных и "невключённых" папок без глубокого сканирования.
- Кроссплатформенность: Полная поддержка Windows, Linux и macOS.
Не хотите компилировать сами? Скачайте готовые бинарники для вашей ОС:
| ОС | Файл | Ссылка |
|---|---|---|
| 🖥️ Windows | copy_prog-windows-x64.zip |
Скачать |
| 🐧 Linux (tar.gz) | copy_prog-linux-x64.tar.gz |
Скачать |
| 🍎 macOS | copy_prog-macos-x64.dmg |
Скачать |
Как использовать:
🖥️ Windows:
- Скачайте
copy_prog-windows-x64.zip - Распакуйте архив в любую папку
- Запустите
copy_prog.exe
🐧 Linux (tar.gz) — универсальный для всех дистрибутивов:
wget https://github.com/Mexikk/copy-prog/releases/latest/download/copy_prog-linux-x64.tar.gz
tar xzf copy_prog-linux-x64.tar.gz
chmod +x copy_prog
./copy_prog🍎 macOS:
- Скачайте
copy_prog-macos-x64.dmg - Откройте DMG двойным кликом
- Перетащите
Copy_prog.appв папку Applications - Запустите из Launchpad
💡 Совет для Windows: Добавьте папку с
copy_prog.exeв системную переменнуюPATH, чтобы запускать программу из любого места в терминале.
Если у вас установлен Rust:
cargo install --git https://github.com/Mexikk/copy-prog.gitПрограмма автоматически установится в ~/.cargo/bin/ и будет доступна из любого места по команде copy_prog.
-
Клонируйте репозиторий:
git clone https://github.com/Mexikk/copy-prog.git cd copy-prog -
Соберите программу:
cargo build --release
-
Запустите:
- Windows:
.\target\release\copy_prog.exe - Linux/macOS:
./target/release/copy_prog
- Windows:
-
Опционально установите в систему:
cargo install --path .
Windows: Достаточно установить Rust. Windows API подключается автоматически.
Ubuntu/Debian:
sudo apt install build-essential pkg-configFedora:
sudo dnf groupinstall "Development Tools"
sudo dnf install pkgconfigArch Linux:
sudo pacman -S base-devel pkgconfmacOS:
xcode-select --installРекомендуется: Используйте Windows Terminal из Microsoft Store — он поддерживает все символы Unicode (кириллицу, латиницу, иероглифы) из коробки.
Альтернатива (cmd.exe/PowerShell): Программа автоматически настраивает консоль на UTF-8 при запуске. Однако для корректного отображения всех символов может потребоваться:
-
Для русского языка (кириллицы):
- Если у вас англоязычная Windows, установите русский языковой пакет: Параметры → Время и язык → Язык → Добавить язык → Русский
- Шрифт консоли: Consolas, Lucida Console или Courier New (поддерживают кириллицу)
-
Для китайского языка (иероглифов):
- Установите китайский языковой пакет: Параметры → Время и язык → Язык → Добавить язык → 中文(简体)
- Шрифт консоли: Microsoft YaHei, SimSun-ExtB или NSimSun
⚠️ Стандартные шрифты cmd.exe часто не поддерживают иероглифы — используйте Windows Terminal
-
Для английского языка:
- Отображается корректно на любой системе без дополнительной настройки
Современные терминалы (GNOME Terminal, Konsole, iTerm2, Terminal.app) поддерживают UTF-8 по умолчанию. Убедитесь, что установлен шрифт с поддержкой CJK (например, Noto Sans CJK или Source Code Pro).
Для китайских иероглифов:
# Ubuntu/Debian
sudo apt install fonts-noto-cjk
# Fedora
sudo dnf install google-noto-sans-cjk-fonts
# Arch
sudo pacman -S noto-fonts-cjkЕсли вместо текста вы видите ???? или □□□:
- Запустите программу через Windows Terminal (рекомендуется)
- В cmd.exe/PowerShell измените шрифт: правый клик по заголовку → Свойства → Шрифт
- Убедитесь, что установлен нужный языковой пакет Windows
- Для старых версий Windows (7/8) может потребоваться обновление Unicode-поддержки
- Выбрать исходную папку.
- Выбрать определённые папки.
- Настроить расширения (добавить/удалить/режим «все файлы»).
- Настроить разделитель (0–5 пустых строк).
- Включить/выключить игнорирование служебных папок.
- Настроить исключения по путям (добавить/удалить/показать/очистить).
- Выбрать выходной файл.
- Запустить копирование.
- Показать превью списка файлов (что будет скопировано).
- Сбросить настройки до значений по умолчанию.
- Сохранить текущие настройки как «по умолчанию».
- Показать встроенную инструкцию.
- Переключить язык интерфейса ([Рус] [Eng] [中文]).
- Выход.
copy_prog-
Копирование с 0 разделителями и только
.rs/.mdcopy_prog --source . --sep 0 --exts .rs,.md -
Включение системных папок (сканировать
target,.gitи т.д.)copy_prog --source . --include-system-dirs -
Добавление исключений (пропустить
targetи конкретный файлshared/src/legacy.rs)copy_prog --source . --exclude target,shared/src/legacy.rs -
Запуск с английским интерфейсом и превью (без реального копирования)
copy_prog --lang EN --preview
-
Копирование только из конкретных папок (
srcиshared)copy_prog --source . --only-dirs src,shared -
Сброс настроек до заводских
copy_prog --reset-config
-
Показать расширенную инструкцию
copy_prog --usage-details
Конфигурация сохраняется автоматически в домашней директории:
| ОС | Путь к конфигу |
|---|---|
| Windows | C:\Users\<username>\.copy_prog\config.json |
| Linux | /home/<username>/.copy_prog/config.json |
| macOS | /Users/<username>/.copy_prog/config.json |
Формат конфигурации:
{
"default_extensions": [".rs", ".toml"],
"enabled_extensions": [".rs", ".toml"],
"use_all_files": false,
"separator_lines": 2,
"ignore_system_dirs": true,
"exclude_paths": [],
"include_dirs": [],
"language": "RU",
"last_source": ".",
"last_output": "merged_output.txt"
}Если copy_prog сэкономил вам время, вы можете поддержать его развитие:
Любая сумма приветствуется — даже чашка кофе помогает! ☕
Криптовалюта:
- 🔷 TON:
UQDcIBZXl9-zGiDOh9d1mhheJV1uShFQ10EndJTzI9vyl5pA
Ваши донаты помогают развивать проект и создавать новые полезные утилиты!
Основные возможности:
- ✅ Сбор файлов из монорепозитория в единый текстовый документ
- ✅ Мультиязычный интерфейс (RU/EN/ZH)
- ✅ Превью списка файлов с пагинацией и маркерами статусов
- ✅ Выбор конкретных папок для сканирования (
--only-dirs) - ✅ Гибкая система исключений по путям (
--exclude) - ✅ Настройка расширений и разделителей
- ✅ Игнорирование системных папок (
.git,target,node_modules) - ✅ Автоматическая настройка UTF-8 на Windows
- ✅ Надёжная фильтрация через канонические пути
- ✅ Сохранение конфигурации между запусками
- ✅ Интерактивное меню из 14 пунктов
- ✅ Полноценный CLI режим с флагами
- ✅ Кроссплатформенность (Windows, Linux, macOS)
- ✅ Защита от выхода за пределы исходной директории
- ✅ Строгая проверка UTF-8 при чтении файлов
- ✅ Автоматическая сборка пакетов для всех ОС через GitHub Actions
- ✅ Иконки для всех платформ (включая 16×16 для мелких списков)
Программа предоставляется "как есть", без каких-либо гарантий. Автор не несёт ответственности за любые потери данных, возникшие в результате использования программы. Всегда делайте резервные копии важных файлов перед использованием утилиты.
MIT License — свободное использование, модификация и распространение с сохранением указания авторства.
Полный текст лицензии см. в файле LICENSE.
Автор программы: M. Mikh. Mir
Сделано в России 🇷🇺
Программа создана полностью на языке программирования Rust.
Program author: M. Mikh. Mir
Made in Russia 🇷🇺
The program is written entirely in the Rust programming language.