# Управление контурами test/prod.
# Пример: make up E=test
#
# Используем .RECIPEPREFIX, чтобы не зависеть от табов (рецепты начинаются с ">").
E ?= test
FILE := env/$(E).env
COMPOSE := docker compose -p $(E) --env-file $(FILE) -f docker-compose.prod.yml

.DEFAULT_GOAL := help
.RECIPEPREFIX := >

.PHONY: help up pull down restart logs ps images check psql

help:
> @echo "Контур задаётся через E=test|prod (по умолчанию test):"
> @echo "  make up E=test       поднять контур"
> @echo "  make pull E=test     подтянуть образ из registry"
> @echo "  make down E=test     остановить (данные сохраняются)"
> @echo "  make restart E=test  пересоздать контейнеры"
> @echo "  make logs E=test     стримить логи"
> @echo "  make ps E=test       статус сервисов"
> @echo "  make images E=test   образы контура"
> @echo "  make check E=test    проверка контура (скрипт)"
> @echo "  make psql E=test     psql в БД контура"

up:
> $(COMPOSE) up -d

pull:
> $(COMPOSE) pull

down:
> $(COMPOSE) down

restart:
> $(COMPOSE) up -d --force-recreate

logs:
> $(COMPOSE) logs -f

ps:
> $(COMPOSE) ps

images:
> $(COMPOSE) images

check:
> ./scripts/check_contour.sh $(E)

psql:
> $(COMPOSE) exec postgres sh -lc 'psql -U "$$POSTGRES_USER" -d "$$POSTGRES_DB"'
