help: ## print help
	@grep -E '^[\.a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
		awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

dev: values_file = dev.json ## set up development environment for Mac OS
dev: out_dir = dev

prod: values_file = prod.json ## set up prod-alike environment for Mac OS
prod: out_dir = prod

fmc_config fmc: values_file = rpm/fmc.json ## set up fmc environment for Mac OS
fmc_config fmc: out_dir = fmc

login: 
	aws ecr get-login-password --region us-west-1 | docker login --username AWS --password-stdin 012555280953.dkr.ecr.us-west-1.amazonaws.com

dev prod fmc:
	mkdir -p $(out_dir)/config/adapters $(out_dir)/config/certs $(out_dir)/config/connectors
	cp muster-cli $(out_dir)/
	jinja2 docker-compose/docker-compose.j2 $(values_file) \
		--outfile=${out_dir}/docker-compose.yml
	cp -r docker-compose/config/certs $(out_dir)/config
	for i in `find docker-compose/config -name '*.j2'`; do \
		outfile="$${i#docker-compose/}"; \
		jinja2 "$$i" $(values_file) --outfile="$(out_dir)/$${outfile%.j2}.json"; \
	done
	if [ $@ == dev ];then cp .env $(out_dir)/; jq '.credHelpers = {"012555280953.dkr.ecr.us-west-1.amazonaws.com": ""}' ~/.docker/config.json > .config.json.tmp && mv .config.json.tmp ~/.docker/config.json; fi

fmc_config: fmc
	cp rpm/config/*.json $(out_dir)/config
	for i in `find rpm/config -name '*.j2'`; do \
		outfile="$${i#rpm/}"; \
		jinja2 "$$i" $(values_file) --outfile="$(out_dir)/$${outfile%.j2}.json"; \
	done
	rm -rf $(out_dir)/config/adapters

fmc_rpm: export BRANCH := $(if $(BRANCH),$(BRANCH),$(shell git rev-parse --abbrev-ref HEAD | sed -r 's/[/-]/_/'g))
fmc_rpm: export BUILD_NUMBER := $(if $(BUILD_NUMBER),$(BUILD_NUMBER),$(shell date +%s))
fmc_rpm: export COMMIT := $(if $(COMMIT),$(COMMIT),$(shell git log --pretty=format:'%h' -n 1))
fmc_rpm: export WORKSPACE := $(if $(WORKSPACE),$(WORKSPACE),$(shell dirname $(realpath $(MAKEFILE_LIST))))
fmc_rpm: fmc_config
	rpmbuild --define '_topdir /tmp' --target noarch -bb rpm/muster-docker.spec

fix_docker: ## fix permissions to Docker socket on Mac OS
	docker exec -u root -it muster-ui-backend chmod 775 /var/run/docker.sock
	docker restart muster-ui-backend

clean: ## remove environments
	rm -rf dev prod

.PHONY: dev prod fmc fix_docker clean
