NAME := $(lastword $(subst /, ,$(CURDIR)))
PORT=8080

bindir := $(shell yarn bin)
AVA := $(bindir)/ava
NYC := $(bindir)/nyc
SERVE := $(bindir)/http-server

.PHONY: test
test:
	BABEL_DISABLE_CACHE=1 NODE_ENV=test $(NYC) $(AVA) test/*.js $(TEST_ARGS)

XUNIT_DIR := ${CIRCLE_TEST_REPORTS}/tap-xunit
XUNIT := $(bindir)/tap-xunit
XUNIT_OUTPUT := >> ${CIRCLE_TEST_REPORTS}/tap-xunit/xunit-$(NAME)
.PHONY: test-ci
test-ci:
	mkdir -p $(XUNIT_DIR)
	BABEL_DISABLE_CACHE=1 NODE_ENV=test $(NYC) $(AVA) test/*.js -t | $(XUNIT) $(XUNIT_OUTPUT).xml

.PHONY: install-embed-markdown-loader
install-embed-markdown-loader:
	cd docs/webpack/embed-markdown-loader && yarn install --prefer-offline

.PHONY: install-docs
install-docs:
	cd docs && yarn install --prefer-offline

.PHONY: install
install: install-embed-markdown-loader
	NODE_ENV=development yarn install --prefer-offline

.PHONY: start
start:
	# $(bindir)/st -p $(PORT) -H 0.0.0.0 -d static --no-dot -i index.html
	$(bindir)/start-storybook -p 8080

.PHONY: install-production
install-production: compile

.PHONY: compile
compile: install
	mkdir -p dist
	cp -R src/. dist/.
	$(bindir)/babel src --out-dir dist --source-maps inline

.PHONY: build
build:
	docker build -t quay.io/yldio/joyent-dashboard-$(NAME):$(CIRCLE_BRANCH) .

.PHONY: push
push:
	docker push quay.io/yldio/joyent-dashboard-$(NAME)

.PHONY: clean
clean:
	@rm -rf node_modules
	@rm -rf webpack/embed-markdown-loader/node_modules

.PHONY: lint
lint:
	$(bindir)/eslint .
#	$(bindir)/stylelint './src/**/*.js'

.PHONY: lint-ci
lint-ci:
	mkdir -p $(XUNIT_DIR)
	-$(bindir)/eslint . --format tap | $(XUNIT) $(XUNIT_OUTPUT)-lint.xml

.PHONY: publish
publish:
	docker build --build-arg NPM_TOKEN=${NPM_TOKEN} --build-arg CIRCLE_BUILD_NUM=${CIRCLE_BUILD_NUM} -f Dockerfile.build .

.PHONY: licence-check
licence-check:
	../node_modules/.bin/license-to-fail ../licence.js
