# Makefile для LogBoard клиента
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru

.PHONY: help build up down logs clean test setup

# Переменные
COMPOSE_FILE = docker-compose.yml
SERVICE_NAME = logboard-client

help: ## Показать справку
	@echo "LogBoard Client - Управление клиентом"
	@echo ""
	@echo "Доступные команды:"
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'

setup: ## Настройка окружения
	@echo "Настройка окружения для LogBoard клиента..."
	@if [ ! -f .env ]; then \
		echo "Создание файла .env из примера..."; \
		cp env.example .env; \
		echo "Файл .env создан. Отредактируйте его перед запуском."; \
	else \
		echo "Файл .env уже существует."; \
	fi
	@echo "Создание директорий для логов..."
	@mkdir -p logs

build: ## Сборка Docker образа
	@echo "Сборка Docker образа для LogBoard клиента..."
	docker-compose -f $(COMPOSE_FILE) build

up: ## Запуск клиента
	@echo "Запуск LogBoard клиента..."
	docker-compose -f $(COMPOSE_FILE) up -d

down: ## Остановка клиента
	@echo "Остановка LogBoard клиента..."
	docker-compose -f $(COMPOSE_FILE) down

restart: ## Перезапуск клиента
	@echo "Перезапуск LogBoard клиента..."
	docker-compose -f $(COMPOSE_FILE) restart

logs: ## Просмотр логов клиента
	@echo "Логи LogBoard клиента:"
	docker-compose -f $(COMPOSE_FILE) logs -f $(SERVICE_NAME)

logs-all: ## Просмотр всех логов
	@echo "Все логи:"
	docker-compose -f $(COMPOSE_FILE) logs -f

status: ## Статус сервисов
	@echo "Статус сервисов:"
	docker-compose -f $(COMPOSE_FILE) ps

clean: ## Очистка (удаление контейнеров и образов)
	@echo "Очистка Docker ресурсов..."
	docker-compose -f $(COMPOSE_FILE) down --rmi all --volumes --remove-orphans

clean-logs: ## Очистка логов
	@echo "Очистка логов..."
	@rm -rf logs/*

test: ## Запуск тестового контейнера
	@echo "Запуск тестового контейнера..."
	docker-compose -f $(COMPOSE_FILE) up -d test-container

test-logs: ## Просмотр логов тестового контейнера
	@echo "Логи тестового контейнера:"
	docker-compose -f $(COMPOSE_FILE) logs -f test-container

stop-test: ## Остановка тестового контейнера
	@echo "Остановка тестового контейнера..."
	docker-compose -f $(COMPOSE_FILE) stop test-container

health: ## Проверка здоровья клиента
	@echo "Проверка здоровья LogBoard клиента..."
	@docker-compose -f $(COMPOSE_FILE) exec $(SERVICE_NAME) python -c "import requests; print('Health check:', requests.get('http://localhost:8080/health').status_code)" 2>/dev/null || echo "Health check недоступен"

shell: ## Вход в контейнер клиента
	@echo "Вход в контейнер LogBoard клиента..."
	docker-compose -f $(COMPOSE_FILE) exec $(SERVICE_NAME) /bin/bash

install: setup build up ## Полная установка (настройка + сборка + запуск)
	@echo "LogBoard клиент успешно установлен и запущен!"

uninstall: down clean ## Полное удаление
	@echo "LogBoard клиент удален!"

dev: ## Запуск в режиме разработки
	@echo "Запуск в режиме разработки..."
	docker-compose -f $(COMPOSE_FILE) up

dev-build: ## Сборка и запуск в режиме разработки
	@echo "Сборка и запуск в режиме разработки..."
	docker-compose -f $(COMPOSE_FILE) up --build
