SHELL := /bin/zsh
COMPOSE_FILE := docker-compose.yml
PROJECT_NAME := diyaa

.PHONY: start stop restart logs ps build ensure-env ensure-project

ensure-env:
	@if [ ! -f .env ]; then \
		if [ -f .env.example ]; then \
			cp .env.example .env; \
			echo ".env created from .env.example"; \
		else \
			echo ".env file is missing and .env.example was not found."; \
			exit 1; \
		fi; \
	fi

ensure-project: ensure-env
	@grep -q '^COMPOSE_PROJECT_NAME=$(PROJECT_NAME)$$' .env || \
	(echo "COMPOSE_PROJECT_NAME in .env must be '$(PROJECT_NAME)' to avoid project mix-up."; exit 1)

start: ensure-project
	docker compose --env-file .env -f $(COMPOSE_FILE) up -d --build
	@echo "diyaa services are up"

stop: ensure-project
	docker compose --env-file .env -f $(COMPOSE_FILE) down

restart: stop start

logs: ensure-project
	docker compose --env-file .env -f $(COMPOSE_FILE) logs -f --tail=200

ps: ensure-project
	docker compose --env-file .env -f $(COMPOSE_FILE) ps

build: ensure-project
	docker compose --env-file .env -f $(COMPOSE_FILE) build
