Достижение: Добавлены скрипты и документация для релиза PDF Compressor.
- Добавлен release-body.md для подробных заметок о релизе на русском языке. - Реализован release-gitea.ps1 для автоматизированного релиза Gitea с помощью PowerShell. - Создан release-gitea.sh для автоматизированного релиза Gitea с помощью Bash. - Добавлен release.sh для сборки и маркировки релизов с поддержкой нескольких платформ. - Улучшен пользовательский интерфейс благодаря информативному логированию и обработке ошибок. - Добавлена поддержка переменных окружения и управления конфигурацией. - Добавлена функция создания архивов и загрузки ресурсов в Gitea.
This commit is contained in:
9
internal/domain/repositories/app_config_repository.go
Normal file
9
internal/domain/repositories/app_config_repository.go
Normal file
@@ -0,0 +1,9 @@
|
||||
package repositories
|
||||
|
||||
import "compressor/internal/domain/entities"
|
||||
|
||||
// ConfigRepository интерфейс для работы с конфигурацией приложения
|
||||
type AppConfigRepository interface {
|
||||
Load(configPath string) (*entities.Config, error)
|
||||
Save(configPath string, config *entities.Config) error
|
||||
}
|
||||
24
internal/domain/repositories/interfaces.go
Normal file
24
internal/domain/repositories/interfaces.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"compressor/internal/domain/entities"
|
||||
)
|
||||
|
||||
// PDFCompressor интерфейс для сжатия PDF файлов
|
||||
type PDFCompressor interface {
|
||||
Compress(inputPath, outputPath string, config *entities.CompressionConfig) (*entities.CompressionResult, error)
|
||||
}
|
||||
|
||||
// FileRepository интерфейс для работы с файловой системой
|
||||
type FileRepository interface {
|
||||
GetFileInfo(path string) (*entities.PDFDocument, error)
|
||||
FileExists(path string) bool
|
||||
CreateDirectory(path string) error
|
||||
ListPDFFiles(directory string) ([]string, error)
|
||||
}
|
||||
|
||||
// ConfigRepository интерфейс для работы с конфигурацией
|
||||
type ConfigRepository interface {
|
||||
GetCompressionConfig(level int) (*entities.CompressionConfig, error)
|
||||
ValidateConfig(config *entities.CompressionConfig) error
|
||||
}
|
||||
11
internal/domain/repositories/logger.go
Normal file
11
internal/domain/repositories/logger.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package repositories
|
||||
|
||||
// Logger интерфейс для логирования
|
||||
type Logger interface {
|
||||
Debug(format string, args ...interface{})
|
||||
Info(format string, args ...interface{})
|
||||
Warning(format string, args ...interface{})
|
||||
Error(format string, args ...interface{})
|
||||
Success(format string, args ...interface{})
|
||||
Close() error
|
||||
}
|
||||
Reference in New Issue
Block a user