Skip to content

Repository files navigation

Copy_prog

Утилита для сбора файлов из монорепозитория в единый документ с заголовками путей. Поддерживает мультиязычность (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:

  1. Скачайте copy_prog-windows-x64.zip
  2. Распакуйте архив в любую папку
  3. Запустите 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:

  1. Скачайте copy_prog-macos-x64.dmg
  2. Откройте DMG двойным кликом
  3. Перетащите Copy_prog.app в папку Applications
  4. Запустите из Launchpad

💡 Совет для Windows: Добавьте папку с copy_prog.exe в системную переменную PATH, чтобы запускать программу из любого места в терминале.

🛠️ Установка для разработчиков

Через Cargo (рекомендуется, если есть Rust)

Если у вас установлен Rust:

cargo install --git https://github.com/Mexikk/copy-prog.git

Программа автоматически установится в ~/.cargo/bin/ и будет доступна из любого места по команде copy_prog.

Из исходного кода

  1. Клонируйте репозиторий:

    git clone https://github.com/Mexikk/copy-prog.git
    cd copy-prog
  2. Соберите программу:

    cargo build --release
  3. Запустите:

    • Windows: .\target\release\copy_prog.exe
    • Linux/macOS: ./target/release/copy_prog
  4. Опционально установите в систему:

    cargo install --path .

Зависимости для сборки

Windows: Достаточно установить Rust. Windows API подключается автоматически.

Ubuntu/Debian:

sudo apt install build-essential pkg-config

Fedora:

sudo dnf groupinstall "Development Tools"
sudo dnf install pkgconfig

Arch Linux:

sudo pacman -S base-devel pkgconf

macOS:

xcode-select --install

🌍 Требования для корректного отображения текста

Windows

Рекомендуется: Используйте Windows Terminal из Microsoft Store — он поддерживает все символы Unicode (кириллицу, латиницу, иероглифы) из коробки.

Альтернатива (cmd.exe/PowerShell): Программа автоматически настраивает консоль на UTF-8 при запуске. Однако для корректного отображения всех символов может потребоваться:

  1. Для русского языка (кириллицы):

    • Если у вас англоязычная Windows, установите русский языковой пакет: Параметры → Время и язык → Язык → Добавить язык → Русский
    • Шрифт консоли: Consolas, Lucida Console или Courier New (поддерживают кириллицу)
  2. Для китайского языка (иероглифов):

    • Установите китайский языковой пакет: Параметры → Время и язык → Язык → Добавить язык → 中文(简体)
    • Шрифт консоли: Microsoft YaHei, SimSun-ExtB или NSimSun
    • ⚠️ Стандартные шрифты cmd.exe часто не поддерживают иероглифы — используйте Windows Terminal
  3. Для английского языка:

    • Отображается корректно на любой системе без дополнительной настройки

Linux/macOS

Современные терминалы (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

Устранение неполадок

Если вместо текста вы видите ???? или □□□:

  1. Запустите программу через Windows Terminal (рекомендуется)
  2. В cmd.exe/PowerShell измените шрифт: правый клик по заголовку → Свойства → Шрифт
  3. Убедитесь, что установлен нужный языковой пакет Windows
  4. Для старых версий Windows (7/8) может потребоваться обновление Unicode-поддержки

📋 Интерактивное меню

  1. Выбрать исходную папку.
  2. Выбрать определённые папки.
  3. Настроить расширения (добавить/удалить/режим «все файлы»).
  4. Настроить разделитель (0–5 пустых строк).
  5. Включить/выключить игнорирование служебных папок.
  6. Настроить исключения по путям (добавить/удалить/показать/очистить).
  7. Выбрать выходной файл.
  8. Запустить копирование.
  9. Показать превью списка файлов (что будет скопировано).
  10. Сбросить настройки до значений по умолчанию.
  11. Сохранить текущие настройки как «по умолчанию».
  12. Показать встроенную инструкцию.
  13. Переключить язык интерфейса ([Рус] [Eng] [中文]).
  14. Выход.

💻 Примеры использования

Интерактивный режим (по умолчанию)

copy_prog

CLI режимы

  1. Копирование с 0 разделителями и только .rs/.md

    copy_prog --source . --sep 0 --exts .rs,.md
  2. Включение системных папок (сканировать target, .git и т.д.)

    copy_prog --source . --include-system-dirs
  3. Добавление исключений (пропустить target и конкретный файл shared/src/legacy.rs)

    copy_prog --source . --exclude target,shared/src/legacy.rs
  4. Запуск с английским интерфейсом и превью (без реального копирования)

    copy_prog --lang EN --preview
  5. Копирование только из конкретных папок (src и shared)

    copy_prog --source . --only-dirs src,shared
  6. Сброс настроек до заводских

    copy_prog --reset-config
  7. Показать расширенную инструкцию

    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 сэкономил вам время, вы можете поддержать его развитие:

🇷🇺 Для пользователей из России

Boosty

ЮMoney

CloudTips

Любая сумма приветствуется — даже чашка кофе помогает! ☕

🌍 Для пользователей из других стран

Криптовалюта:

  • 🔷 TON: UQDcIBZXl9-zGiDOh9d1mhheJV1uShFQ10EndJTzI9vyl5pA

Ваши донаты помогают развивать проект и создавать новые полезные утилиты!

📜 История версий

1.0.0 (2026-06-25) — Первый публичный релиз 🎉

Основные возможности:

  • ✅ Сбор файлов из монорепозитория в единый текстовый документ
  • ✅ Мультиязычный интерфейс (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.

About

Утилита для сбора файлов из монорепозитория в единый документ. Поддержка RU/EN/ZH, превью, выбор папок, исключения.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages