1
1
Files
audio-catalyst/Makefile
Dmitriy Fofanov 72a66f1664 Добавить тесты репозитория файловой системы и реализовать функциональность журналирования файлов.
- Реализовать тесты для поиска MP3-файлов и переименования/организации папок книг в репозитории файловой системы.
- Создать FileLogger для записи сообщений в файл с поддержкой различных уровней журналирования и управления размером файлов.
- Разработать репозиторий RuTracker для обработки поиска торрентов, получения метаданных и загрузки торрент-файлов.
- Добавить тесты для нормализации URL в репозиторий RuTracker.
- Реализовать адаптер логгера TUI для отображения логов в терминальном интерфейсе и, при необходимости, для записи логов в базовый логгер.
- Создать менеджер TUI для управления пользовательским интерфейсом приложения, включая главное меню, экран обработки, настройки и отображение результатов.
2025-09-29 20:40:05 +03:00

115 lines
5.0 KiB
Makefile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AudioBook Catalyst Makefile
# Удобные команды для разработки и тестирования
# Переменные
BINARY_NAME=audio-catalyst.exe
MAIN_PACKAGE=./cmd
TEST_TIMEOUT=30s
# Цвета для вывода
GREEN=\033[0;32m
YELLOW=\033[0;33m
RED=\033[0;31m
NC=\033[0m # No Color
.PHONY: help build test clean run fmt vet deps benchmark coverage install
# Помощь
help: ## Показать это сообщение помощи
@echo "$(YELLOW)AudioBook Catalyst - Команды разработки$(NC)"
@echo ""
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "$(GREEN)%-15s$(NC) %s\n", $$1, $$2}' $(MAKEFILE_LIST)
# Основные команды
build: ## Собрать приложение
@echo "$(YELLOW)🔨 Сборка AudioBook Catalyst...$(NC)"
@powershell -Command "$$env:GOOS='windows'; $$env:GOARCH='amd64'; $$env:CGO_ENABLED='1'; go build -o $(BINARY_NAME) $(MAIN_PACKAGE)"
@echo "$(GREEN)✅ Сборка завершена: $(BINARY_NAME)$(NC)"
run: build ## Собрать и запустить приложение
@echo "$(YELLOW)🚀 Запуск AudioBook Catalyst...$(NC)"
@powershell -Command ".\$(BINARY_NAME)"
test: ## Запустить все тесты
@echo "$(YELLOW)🧪 Запуск тестов...$(NC)"
@powershell -Command "$$env:GOOS='windows'; $$env:GOARCH='amd64'; $$env:CGO_ENABLED='1'; go test -v -timeout $(TEST_TIMEOUT) ./..."
@echo "$(GREEN)✅ Тесты завершены$(NC)"
benchmark: ## Запустить бенчмарки
@echo "$(YELLOW)⚡ Запуск бенчмарков...$(NC)"
@powershell -Command "$$env:GOOS='windows'; $$env:GOARCH='amd64'; $$env:CGO_ENABLED='1'; go test -bench=. -benchmem ./..."
@echo "$(GREEN)✅ Бенчмарки завершены$(NC)"
coverage: ## Запустить тесты с анализом покрытия
@echo "$(YELLOW)📊 Анализ покрытия кода...$(NC)"
@powershell -Command "$$env:GOOS='windows'; $$env:GOARCH='amd64'; $$env:CGO_ENABLED='1'; go test -v -cover -coverprofile=coverage.out ./..."
go tool cover -html=coverage.out -o coverage.html
@echo "$(GREEN)✅ Отчет о покрытии создан: coverage.html$(NC)"
# Качество кода
fmt: ## Форматировать код
@echo "$(YELLOW)🎨 Форматирование кода...$(NC)"
go fmt ./...
@echo "$(GREEN)✅ Код отформатирован$(NC)"
vet: ## Статический анализ кода
@echo "$(YELLOW)🔍 Статический анализ...$(NC)"
go vet ./...
@echo "$(GREEN)✅ Анализ завершен$(NC)"
lint: ## Запустить линтер (требует golangci-lint)
@echo "$(YELLOW)🔎 Запуск линтера...$(NC)"
golangci-lint run
@echo "$(GREEN)✅ Линтинг завершен$(NC)"
# Зависимости
deps: ## Обновить зависимости
@echo "$(YELLOW)📦 Обновление зависимостей...$(NC)"
go mod tidy
go mod download
@echo "$(GREEN)✅ Зависимости обновлены$(NC)"
deps-verify: ## Проверить зависимости
@echo "$(YELLOW)🔐 Проверка зависимостей...$(NC)"
go mod verify
@echo "$(GREEN)✅ Зависимости проверены$(NC)"
# Очистка
clean: ## Очистить артефакты сборки
@echo "$(YELLOW)🧹 Очистка...$(NC)"
@powershell -Command "go clean; Remove-Item -Force -ErrorAction SilentlyContinue $(BINARY_NAME); Remove-Item -Force -ErrorAction SilentlyContinue coverage.out, coverage.html"
@echo "$(GREEN)✅ Очистка завершена$(NC)"
clean-cache: ## Очистить кэш Go
@echo "$(YELLOW)🗑️ Очистка кэша Go...$(NC)"
go clean -cache -modcache -testcache
@echo "$(GREEN)✅ Кэш очищен$(NC)"
# Установка инструментов разработки
install-tools: ## Установить инструменты разработки
@echo "$(YELLOW)🛠️ Установка инструментов...$(NC)"
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
@echo "$(GREEN)✅ Инструменты установлены$(NC)"
# Комплексные команды
check: fmt vet test ## Полная проверка кода (форматирование + анализ + тесты)
@echo "$(GREEN)Все проверки пройдены$(NC)"
release: clean check build ## Подготовка к релизу
@echo "$(GREEN)🎉 Готово к релизу!$(NC)"
# Отладка
debug: ## Информация о Go окружении
@echo "$(YELLOW)🔧 Информация о Go:$(NC)"
@echo "Go version: $$(go version)"
@echo "GOOS: $$(go env GOOS)"
@echo "GOARCH: $$(go env GOARCH)"
@echo "GOPATH: $$(go env GOPATH)"
@echo "GOROOT: $$(go env GOROOT)"
# Быстрые команды
t: test ## Быстрый алиас для test
b: build ## Быстрый алиас для build
r: run ## Быстрый алиас для run
c: clean ## Быстрый алиас для clean