SHELL=/bin/bash
PACKAGE=$(shell cat package.json | jq ".name" | sed 's/@trigo\///')
REPO_VERSION:=$(shell cat package.json| jq .version)

info:
	@echo "=====> NPM Info"
	@echo "Package:               $(PACKAGE)"
	@echo "Version:               ${REPO_VERSION}"
	@echo "Published:             $$(npm show --json @trigo/$(PACKAGE) | jq -r ".versions | join(\", \")")"

install:
	yarn install

clean:
	rm -rf node_modules/

test:
	yarn test

build: .
	docker-compose -f docker-compose.test.yml build

lint:
	yarn lint

pretty:
	yarn prettify

ci-lint: build
	@docker-compose -f docker-compose.test.yml run --rm $(PACKAGE) yarn lint; \
		test_exit=$$?; \
		docker-compose -f docker-compose.test.yml down; \
		exit $$test_exit


ci-test: build
	@docker-compose -f docker-compose.test.yml run --rm $(PACKAGE); \
		test_exit=$$?; \
		docker-compose -f docker-compose.test.yml down; \
		exit $$test_exit

publish: build
	@docker-compose -f docker-compose.test.yml run --rm $(PACKAGE) \
	   	/bin/bash -c 'if [[ $$(npm show --json @trigo/$(PACKAGE) versions) =~ "'$(REPO_VERSION)'" ]]; then \
			echo "Version unchanged, no need to publish"; \
		else \
			npm publish; \
		fi'; EXIT_CODE=$$?; \
		docker-compose -f docker-compose.test.yml down; \
		exit $$EXIT_CODE

will-publish:
	$$(npm show --json @trigo/$(PACKAGE) versions) =~ "'$(REPO_VERSION)'"
