path := loc
nm = ./node_modules

TANKERHOST="tanker-api.yandex-team.ru"
LANGS="ru,en,tr,uk,fr,fi"

# use MIN=n to skip minimizing files
MIN?=y

ifeq ($(MIN),y)
	MINIMIZE_JS=--minimize=true
	MINIMIZE_CSS=--minimize=true
else
	MINIMIZE_JS=--minimize=false
	MINIMIZE_CSS=--minimize=false
endif


TEMPLATES=$(shell ls templates/ | sed 's/\.yate//g')
YATE_BUILT=$(foreach t,$(TEMPLATES),views/$(t).js)

all: node_modules $(YATE_BUILT) static jsx

codestyle: node_modules
	@sh ./tools/stylus/checkRem.sh ./yateBlocks
	@./node_modules/.bin/jshint . && ./node_modules/.bin/jscs .

node_modules: package.json
ifeq ($(NPMCACHE),y)
	@echo "Installing npm modules from cache, if available"
	npm install --registry http://npm.yandex-team.ru --cache-min 86400
else
# TODO: npm install в этом месте не отрабатывает в тимсити
	@echo "Loading npm modules"
	npm install --registry http://npm.yandex-team.ru
endif

# В случае, если package.json новее, чем node_modules make всегда будет выполять зависимость
	@touch node_modules

$(YATE_BUILT): fullname=$(notdir $(basename $(basename $@)))
$(YATE_BUILT): name=$(subst .,,$(suffix .$(fullname)))
$(YATE_BUILT): node_modules
	@mkdir -p views
	$(nm)/yate/yate templates/$(name).yate > $@
	@rm -rf templates/$(name).yate.obj

static: node_modules
	@mkdir -p data/css
	@mkdir -p data/js

	@node ./tools/build.js data/css/broker.tmp yateBlocks/broker.styl
	$(nm)/borschik/bin/borschik $(MINIMIZE_CSS) -i data/css/broker.tmp.css -o data/css/broker.css
	$(nm)/borschik/bin/borschik $(MINIMIZE_CSS) -i data/css/broker.tmp.ie.css -o data/css/broker.ie.css
	$(nm)/borschik/bin/borschik $(MINIMIZE_JS) -i yateBlocks/broker.js -o data/js/broker.js

	@rm data/css/broker.tmp.*

jsx:
	npm run build:production

loc:
	wget -6 --no-check-certificate -O "$(path)/passport.json" "https://$(TANKERHOST)/projects/export/json/?project-id=passport&keyset-id=Frontend&language=$(LANGS)&flat-keyset=1&safe"
	wget -6 --no-check-certificate -O "$(path)/social.json" "https://$(TANKERHOST)/projects/export/json/?project-id=social&language=$(LANGS)&flat-keyset=1&status=unapproved&safe"

clean:
	@rm -rf $(YATE_BUILT) data/css/ data/js/

clean-all: clean
	@rm -rf node_modules

.PHONY: all clean clean-all loc
