Добавлены скрипты сборки для кроссплатформенных двоичных файлов и лицензия GPL.

- Добавлен файл LICENSE с лицензией GNU General Public License версии 3.0.
- Создан скрипт PowerShell (build-all.ps1) для сборки двоичных файлов Windows и Linux из Windows с использованием кросс-компиляции.
- Разработан скрипт сборки Linux (build-linux.sh) для сборки двоичных файлов Linux.
- Реализован скрипт PowerShell (build-windows.ps1) для сборки двоичных файлов Windows.
- Каждый скрипт сборки включает упаковку и генерацию контрольной суммы SHA256 для двоичных файлов.
This commit is contained in:
Dmitriy Fofanov
2025-11-05 13:05:49 +03:00
parent 77af408c9e
commit eee9a4a093
33 changed files with 1091 additions and 126 deletions

View File

@@ -1,4 +1,4 @@
# Universal File Compressor
# Universal File Compress
Высокопроизводительный инструмент на Go для массового сжатия PDF и изображений (JPEG/PNG) с удобным TUI-интерфейсом, гибкой конфигурацией и модульной архитектурой (Clean Architecture). Поддерживает выбор алгоритма сжатия (PDFCPU / UniPDF), параметрическое управление качеством, рекурсивную обработку директорий, параллельное выполнение, расширяемость через дополнительные компрессоры.
@@ -42,11 +42,11 @@
### Установка из исходников
```bash
git clone https://github.com/your-username/compressor.git
cd compressor
git clone https://github.com/your-username/compress.git
cd compress
go mod tidy
go build -o compressor cmd/main.go
./compressor # (Windows: compressor.exe)
go build -o compress cmd/main.go
./compress # (Windows: compress.exe)
```
### Минимальный сценарий
@@ -86,7 +86,7 @@ output:
log_level: "info" # debug|info|warning|error
progress_bar: true
log_to_file: true
log_file_name: "compressor.log"
log_file_name: "compress.log"
log_max_size_mb: 10
```
@@ -158,7 +158,7 @@ output:
Следует принципам Clean Architecture.
Слои:
- `domain` сущности, ошибки, интерфейсы (`PDFCompressor`, `FileRepository`, `Logger`).
- `domain` сущности, ошибки, интерфейсы (`Сompress`, `FileRepository`, `Logger`).
- `usecase` сценарии: `ProcessPDFsUseCase`, `CompressImageUseCase`, `ProcessAllFilesUseCase`.
- `infrastructure` реализации (компрессоры, файловый репозиторий, конфигурация, логирование).
- `presentation/tui` UI слой, отображение прогресса, ввод настроек.
@@ -200,7 +200,7 @@ output:
## 10. Расширяемость
### Добавление нового PDF компрессора
1. Создайте файл в `internal/infrastructure/compressors/` (например, `myengine_compressor.go`).
1. Создайте файл в `internal/infrastructure/compress/` (например, `myengine_compressor.go`).
2. Реализуйте интерфейс `PDFCompressor`.
3. Добавьте значение в конфигурацию (`compression.algorithm`).
4. Расширьте `main.go` switch.
@@ -292,12 +292,11 @@ go build -o comprehensive_test.exe comprehensive.go
---
## 15. Лицензия
(Добавьте информацию о лицензии проекта при необходимости.)
---
## Приложение A. Пример расширенного запуска
```bash
PDF_CONFIG=./config.yaml ./pdf-compressor
PDF_CONFIG=./config.yaml ./compress
```
## Приложение B. Метрики качества (пример)