Добавлены скрипты сборки для кроссплатформенных двоичных файлов и лицензия 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

@@ -4,7 +4,7 @@ import (
"fmt"
"testing"
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
)
func TestNewCompressionConfig(t *testing.T) {

View File

@@ -3,7 +3,7 @@ package entities_test
import (
"testing"
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
)
func TestCompressionResult_CalculateCompressionRatio(t *testing.T) {

View File

@@ -1,6 +1,6 @@
package repositories
import "compressor/internal/domain/entities"
import "compress/internal/domain/entities"
// ConfigRepository интерфейс для работы с конфигурацией приложения
type AppConfigRepository interface {

View File

@@ -1,7 +1,7 @@
package repositories
import (
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
)
// PDFCompressor интерфейс для сжатия PDF файлов

View File

@@ -6,7 +6,7 @@ import (
"github.com/pdfcpu/pdfcpu/pkg/api"
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
)
// PDFCPUCompressor реализация компрессора с использованием PDFCPU

View File

@@ -8,7 +8,7 @@ import (
"github.com/unidoc/unipdf/v3/model"
"github.com/unidoc/unipdf/v3/model/optimize"
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
)
// UniPDFCompressor реализация компрессора с использованием UniPDF

View File

@@ -1,7 +1,7 @@
package config
import (
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
"os"
"gopkg.in/yaml.v3"

View File

@@ -1,7 +1,7 @@
package repositories
import (
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
)
// ConfigRepository реализация репозитория конфигурации

View File

@@ -7,7 +7,7 @@ import (
"sort"
"strings"
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
)
// FileSystemRepository реализация репозитория для работы с файловой системой

View File

@@ -7,8 +7,8 @@ import (
"strconv"
"strings"
"compressor/internal/domain/entities"
usecases "compressor/internal/usecase"
"compress/internal/domain/entities"
usecases "compress/internal/usecase"
)
// CLIController контроллер для командной строки
@@ -38,7 +38,7 @@ func NewCLIController(
// HandleSingleFile обрабатывает сжатие одного файла
func (c *CLIController) HandleSingleFile(inputPath, outputPath string) error {
fmt.Println("🔥 PDF Compressor - Сжатие PDF файлов")
fmt.Println("🔥 Compress - Сжатие файлов")
fmt.Println("====================================")
// Запрашиваем уровень сжатия
@@ -60,7 +60,7 @@ func (c *CLIController) HandleSingleFile(inputPath, outputPath string) error {
// HandleDirectory обрабатывает сжатие директории
func (c *CLIController) HandleDirectory(inputDir, outputDir string) error {
fmt.Println("🔥 PDF Compressor - Сжатие директории PDF файлов")
fmt.Println("🔥 Compress - Сжатие директории файлов")
fmt.Println("================================================")
// Запрашиваем уровень сжатия

View File

@@ -1,7 +1,7 @@
package tui
import (
"compressor/internal/domain/repositories"
"compress/internal/domain/repositories"
"fmt"
)

View File

@@ -10,7 +10,7 @@ import (
"sync"
"time"
"compressor/internal/domain/entities"
"compress/internal/domain/entities"
"github.com/gdamore/tcell/v2"
"github.com/rivo/tview"
@@ -176,7 +176,7 @@ func (m *Manager) loadConfig() {
LogLevel: "info",
ProgressBar: true,
LogToFile: true,
LogFileName: "compressor.log",
LogFileName: "compress.log",
LogMaxSizeMB: 10,
},
}
@@ -230,7 +230,7 @@ func (m *Manager) createMainMenu() {
})
m.mainMenu.SetBorder(true).
SetTitle("🔥 Universal File Compressor - Главное меню").
SetTitle("🔥 Universal File Compress - Главное меню").
SetTitleAlign(tview.AlignCenter)
// Настраиваем стиль
@@ -302,7 +302,7 @@ func (m *Manager) createConfigScreen() {
m.updateLicenseFieldVisibility()
m.configForm.SetBorder(true).
SetTitle("🔥 Universal File Compressor - Конфигурация (ESC - выйти без сохранения)").
SetTitle("🔥 Universal File Compress - Конфигурация (ESC - выйти без сохранения)").
SetTitleAlign(tview.AlignCenter)
// Обработка ESC для выхода без сохранения

View File

@@ -4,8 +4,8 @@ import (
"fmt"
"path/filepath"
"compressor/internal/domain/entities"
"compressor/internal/domain/repositories"
"compress/internal/domain/entities"
"compress/internal/domain/repositories"
)
// CompressDirectoryUseCase сценарий сжатия всех PDF файлов в директории

View File

@@ -5,9 +5,9 @@ import (
"os"
"path/filepath"
"compressor/internal/domain/entities"
"compressor/internal/domain/repositories"
"compressor/internal/infrastructure/compressors"
"compress/internal/domain/entities"
"compress/internal/domain/repositories"
"compress/internal/infrastructure/compressors"
)
// CompressImageUseCase обрабатывает сжатие изображений

View File

@@ -4,8 +4,8 @@ import (
"fmt"
"path/filepath"
"compressor/internal/domain/entities"
"compressor/internal/domain/repositories"
"compress/internal/domain/entities"
"compress/internal/domain/repositories"
)
// CompressPDFUseCase сценарий сжатия одного PDF файла

View File

@@ -5,9 +5,9 @@ import (
"path/filepath"
"strings"
"compressor/internal/domain/entities"
"compressor/internal/domain/repositories"
"compressor/internal/infrastructure/compressors"
"compress/internal/domain/entities"
"compress/internal/domain/repositories"
"compress/internal/infrastructure/compressors"
)
// ProcessAllFilesUseCase сценарий для обработки всех поддерживаемых типов файлов

View File

@@ -7,8 +7,8 @@ import (
"sync"
"time"
"compressor/internal/domain/entities"
"compressor/internal/domain/repositories"
"compress/internal/domain/entities"
"compress/internal/domain/repositories"
)
// ProcessPDFsUseCase сценарий автоматической обработки PDF файлов