BUILD_NUMBER ?= 0
GIT_BRANCH ?= unknown-branch
BRANCH_NAME ?= $(notdir $(GIT_BRANCH))
export PATH := node_modules/.bin:$(PATH)

ifeq (, $(shell which chronic))
	CHRONIC=
else
	CHRONIC=chronic
endif

default:
	exit 1

.PHONY: build build-jenkins clean copy-to-system
build:
	-rm -r node_modules
	$(CHRONIC) npm install
	# 2 npm installs because of npm bug with dependencies
	$(CHRONIC) npm install
	export version=$$(date +%Y%m%d%H%M%S) && gulp
	$(CHRONIC) npm prune --production
	mkdir -p build
	jq '.build={buildNumber: $(BUILD_NUMBER), commit:"$(GIT_COMMIT)", branch:"$(GIT_BRANCH)", job:"$(JOB_NAME)"}' package.json >package.build.json
	# tar --transform='s#^#$(BUILD_NUMBER)/#' --transform='s#package.build.json#package.json#' -czf build/insta-server-$(BUILD_NUMBER).tar.gz --anchored --exclude='*.md' --exclude='*.text' --exclude='gulpfile.js' --exclude=build  --exclude=Makefile --exclude=package.json * package.build.json
	rm build/*.tar.gz || true
	tar --transform='s#package.build.json#package.json#' -czf 'build/insta-server-$(BRANCH_NAME)-$(BUILD_NUMBER).tar.gz' --anchored  --exclude='*.md' --exclude='*.text' --exclude='gulpfile.js' --exclude=build --exclude=Makefile --exclude=package.json * package.build.json
	rm package.build.json

copy-to-system:
	rm -r ../../System/system/images/insta-server/artifacts/* || true
	cp ./build/insta-server-$(GIT_BRANCH)-$(BUILD_NUMBER).tar.gz ../../System/system/images/insta-server/artifacts/

clean:
	-rm -r build

build-jenkins: clean build

release: build
	npm version patch
	@echo "IMPORTANT:"
	@echo "Edit Changelog with the changes"
	@echo "Commit changes and tag release"
	@echo "Publish with npm publish"

dev-gatekeeper-creds:
	token=$$(BEAME_ENV=dev node node_modules/beame-sdk/src/cli/beame.js creds getRegToken --fqdn n6ge8i9q4b4b5vb6.h40d7vrwir2oxlnn.v1.d.beameio.net) && \
	BEAME_ENV=dev node main.js creds getCreds --regToken "$$token"
dev-server:
	BEAME_ENV=dev node main.js server start
depcheck:
	depcheck --ignore-dirs public
pack:
	rm -vf beame-gatekeeper*.tgz
	npm pack
