SHELL := /bin/sh

BUF ?= buf

.PHONY: buf-lint buf-generate py-sync go-test compose-up compose-up-dev run-server

buf-lint:
	$(BUF) lint

buf-generate:
	$(BUF) generate

py-sync:
	uv sync --project python

go-test:
	cd clients/go && go test ./...

compose-up:
	docker compose --env-file .env.example -f deploy/docker-compose.yml up --build

compose-up-dev:
	docker compose --env-file .env.example -f deploy/docker-compose.dev.yml up

run-server:
	@set -a; \
	if [ -f .env ]; then . ./.env; fi; \
	set +a; \
	export PYTHONPATH="$${PYTHONPATH:-gen/python:python/packages/officeconvert/src:python/packages/server/src}"; \
	export MINIO_ENDPOINT="$${MINIO_ENDPOINT:-localhost:9000}"; \
	export MINIO_PUBLIC_ENDPOINT="$${MINIO_PUBLIC_ENDPOINT:-localhost:9000}"; \
	export MINIO_USE_SSL="$${MINIO_USE_SSL:-false}"; \
	export MINIO_ACCESS_KEY="$${MINIO_ACCESS_KEY:-minioadmin}"; \
	export MINIO_SECRET_KEY="$${MINIO_SECRET_KEY:-minioadmin}"; \
	export MINIO_SESSION_TTL_SECONDS="$${MINIO_SESSION_TTL_SECONDS:-3600}"; \
	export CONVERSION_CLEANUP_DELAY_SECONDS="$${CONVERSION_CLEANUP_DELAY_SECONDS:-3600}"; \
	uv run --project python uvicorn officeconvert_server.app:app --host "$${UVICORN_HOST:-0.0.0.0}" --port "$${UVICORN_PORT:-8080}"
