CMD_NAME := git-project-manager

.PHONY: all test build install docs clean

VERSION ?= development # Default to "development" if VERSION is not set
PLATFORMS := linux/amd64 linux/arm64 darwin/amd64 darwin/arm64
OUTPUT_DIR := bin
PKG := gitea.libretechconsulting.com/rmcguire/git-project-manager

all: test build install docs

test:
	go test -v ./...

build: test
		@echo "Building for platforms: $(PLATFORMS)"
	@for platform in $(PLATFORMS); do \
		OS=$$(echo $$platform | cut -d/ -f1); \
		ARCH=$$(echo $$platform | cut -d/ -f2); \
		OUTPUT="$(OUTPUT_DIR)/$(CMD_NAME)-$$OS-$$ARCH"; \
		GOOS=$$OS GOARCH=$$ARCH go build -ldflags "-X $(PKG)/cmd.Version=$(VERSION)" -o $$OUTPUT; \
		echo "Built $$OUTPUT"; \
	done
	go build -ldflags "-X $(PKG)/cmd.Version=$(VERSION)" -o bin/${CMD_NAME}

install:
	go install -v -ldflags "-X $(PKG)/cmd.Version=$(VERSION)" .

docs:
	bin/${CMD_NAME} docs md

clean:
	rm -rf bin/${CMD_NAME}
