DOCKER_COMPOSE=docker compose -f docker-compose-local.yml

.DEFAULT_GOAL := help

.PHONY: init docker-up docker-down docker-start docker-ps docker-logs sync build dev preview

include ./.env

help: ## show this help
	@echo MAKE TARGETS
	@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

init: ## initialize required directories
	mkdir -p tmp tmp/.npm tmp/nonexistent

docker-up: init ## bring docs stack up in background
	$(DOCKER_COMPOSE) --profile docs up -d

docker-down: ## take docs stack down
	$(DOCKER_COMPOSE) --profile docs down

docker-start: init ## start docs stack in foreground (CTRL-C beendet)
	$(DOCKER_COMPOSE) --profile docs up; $(DOCKER_COMPOSE) --profile docs down

docker-ps: ## show container state
	$(DOCKER_COMPOSE) --profile docs --profile build ps

docker-logs: ## show docker logs and follow
	$(DOCKER_COMPOSE) --profile docs --profile build logs -f --tail=100 || true

sync: ## Server- und Nova-Docs übernehmen
	node scripts/sync-server-docs.mjs

dev: ## lokaler Dev-Server ohne Docker
	npm run dev

build: ## statischer Build (prüft auch, ob alles rendert)
	npm run build

preview: ## gebauten Stand lokal ansehen
	npm run preview

fix-permissions: ## set files/directories owner to UID:GID from .env
	sudo chown -R $(CODER_UID):$(CODER_GID) ./
