.PHONY: up down status backend-build build release

COMPOSE_CMD := $(shell if command -v docker >/dev/null 2>&1 && docker compose version >/dev/null 2>&1; then echo "docker compose"; elif command -v docker-compose >/dev/null 2>&1; then echo "docker-compose"; fi)
VERSION := 1.0.0
JAR_NAME := svn-log-tool-$(VERSION)-jar-with-dependencies.jar

backend-build:
	@cd backend && mvn clean package -DskipTests

build:
	@cd backend && mvn clean package -DskipTests

up:
	@if [ -z "$(COMPOSE_CMD)" ]; then echo "docker compose/docker-compose not found"; exit 1; fi
	@$(COMPOSE_CMD) up -d --build
	@echo "Application is starting at http://localhost:18088"

down:
	@if [ -z "$(COMPOSE_CMD)" ]; then echo "docker compose/docker-compose not found"; exit 1; fi
	@$(COMPOSE_CMD) down

status:
	@if [ -z "$(COMPOSE_CMD)" ]; then echo "docker compose/docker-compose not found"; exit 1; fi
	@$(COMPOSE_CMD) ps
	@echo "Access URL: http://localhost:18088"

release:
	@echo "Building release packages..."
	@cd backend && mvn clean package -DskipTests
	@echo "Copying jar to release directories..."
	@cp backend/target/$(JAR_NAME) release/windows/
	@cp backend/target/$(JAR_NAME) release/unix/
	@echo "Creating release archives..."
	@cd release/windows && zip -r ../svn-log-tool-$(VERSION)-windows.zip * && cd ../..
	@cd release/unix && tar czf ../svn-log-tool-$(VERSION)-unix.tar.gz * && cd ../..
	@cd release/docker && cp ../../Dockerfile . && cp docker-compose.yml docker-compose.yml.release && tar czf ../svn-log-tool-$(VERSION)-docker.tar.gz * && rm Dockerfile docker-compose.yml.release && cd ../..
	@echo "Release packages created in release/ directory:"
	@ls -lh release/*.zip release/*.tar.gz 2>/dev/null || true
	@echo "Done!"
