COLLECTION_NAMESPACE ?= $(shell grep -o -E '^namespace: [a-zA-Z0-9]*$$' galaxy.yml | awk '{print $$2}')
COLLECTION_NAME ?= $(shell grep -o -E '^name: [a-zA-Z0-9]*$$' galaxy.yml | awk '{print $$2}')
COLLECTION_VERSION ?= $(shell grep -o -E '^version: ([0-9]+\.?){3}$$' galaxy.yml | awk '{print $$2}')
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
MAKEFILE_DIR := $(dir $(MAKEFILE_PATH))

.PHONY: help
help:
	@echo make help
	@echo make build
	@echo make publish

.PHONY: build
build: $(COLLECTION_NAMESPACE)-$(COLLECTION_NAME)-$(COLLECTION_VERSION).tar.gz

$(COLLECTION_NAMESPACE)-$(COLLECTION_NAME)-$(COLLECTION_VERSION).tar.gz:
	ansible-galaxy collection build

.PHONY: publish
publish:
# 	ifeq ($(ANSIBLE_GALAXY_TOKEN_PATH),)
# 	$(error You forgot to set env var ANSIBLE_GALAXY_TOKEN_PATH)
# 	endif
# 	ansible-galaxy collection publish $(COLLECTION_NAMESPACE)-$(COLLECTION_NAME)-$(COLLECTION_VERSION).tar.gz
	@ansible-galaxy collection publish --api-key $(ANSIBLE_GALAXY_TOKEN) $(COLLECTION_NAMESPACE)-$(COLLECTION_NAME)-$(COLLECTION_VERSION).tar.gz

.PHONY: test
test: test-homebrew test-ohmyzsh

.PHONY: test-homebrew
test-homebrew:
	cd roles/homebrew/tests && ANSIBLE_ROLES_PATH=$(MAKEFILE_DIR)/roles ansible-playbook -v --check test.yml

.PHONY: test-ohmyzsh
test-ohmyzsh:
	cd roles/ohmyzsh/tests && ANSIBLE_ROLES_PATH=$(MAKEFILE_DIR)/roles ansible-playbook -v --check test.yml
