# Repo Manager — local developer targets (RMGR-ADR-001)
UV ?= $(shell command -v uv 2>/dev/null || if [ -x "$$HOME/.local/bin/uv" ]; then printf "%s" "$$HOME/.local/bin/uv"; else printf "%s" "uv"; fi)

.PHONY: help install test lint cli-version publisher-run publisher-snapshot container-build

IMAGE_REPOSITORY ?= forgejo.coulomb.social/coulomb/repo-manager
IMAGE_TAG ?= dev

help:
	@echo "Repo Manager targets:"
	@echo "  make install      # uv sync / editable install"
	@echo "  make test         # pytest"
	@echo "  make cli-version  # rmgr --version"
	@echo "  make publisher-run # serve the read-only port.repo publisher"
	@echo "  make publisher-snapshot REGISTRY=... CURSOR_SECRET=..."
	@echo "  make container-build IMAGE_TAG=... # build publisher image"
	@echo "  (api/db/migrate land with first runtime slice)"

install:
	$(UV) sync --all-extras 2>/dev/null || $(UV) pip install -e ".[dev]"

test:
	$(UV) run pytest -q

lint:
	$(UV) run ruff check src tests 2>/dev/null || true

cli-version:
	$(UV) run rmgr --version

publisher-run:
	$(UV) run rmgr publisher api --host $${HOST:-127.0.0.1} --port $${PORT:-8020}

publisher-snapshot:
	@test -n "$(REGISTRY)" && test -n "$(CURSOR_SECRET)"
	$(UV) run rmgr publisher snapshot --registry "$(REGISTRY)" --cursor-secret "$(CURSOR_SECRET)"

container-build:
	docker build -f Containerfile \
		--build-arg VERSION=0.1.0 \
		--build-arg VCS_REF=$$(git rev-parse HEAD) \
		-t $(IMAGE_REPOSITORY):$(IMAGE_TAG) .
