PHP_VERSION?=7.4
NODEJS_VERSION?=16
VOLUME_USER_ID?=$(shell id -u)
VOLUME_GROUP_ID?=$(shell id -g)

PHP_CLI=docker run --rm $(if $(CI),,-it) \
	-u ${VOLUME_USER_ID}:${VOLUME_GROUP_ID} \
	-v "$$(pwd):/src" \
	-v "$$(pwd)/.yarnrc:/.yarnrc" \
	-e NPM_TOKEN=$${NPM_READ_TOKEN:-slip} \
	-e COMPOSER_MEMORY_LIMIT=-1 \
	-w /src \
	eu.gcr.io/ac-registry/php$(PHP_VERSION)-node$(NODEJS_VERSION):cli
BUILDDIR=build


.PHONY: login
login:
ifdef CI
	@true
else
	-gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin https://eu.gcr.io
endif

.PHONY=prepare
prepare: login
	mkdir -p $(BUILDDIR)/logs/coverage $(BUILDDIR)/docs
	-rm composer.lock
	$(PHP_CLI) php -v
	$(PHP_CLI) composer install -n --no-progress
	$(PHP_CLI) node -v
	$(PHP_CLI) yarn install

.PHONY=phpunit
phpunit:
	$(PHP_CLI) bin/phpunit --log-junit $(BUILDDIR)/logs/phpunit.xml


.PHONY=code-quality
code-quality:
	$(PHP_CLI) yarn check:format
	$(PHP_CLI) yarn check:types

.PHONY=jest
jest:
	$(PHP_CLI) yarn test

.PHONY=node-sh
node-sh:
	$(PHP_CLI) sh

.PHONY=cleanup
cleanup:
	-rm -rf $(BUILDDIR)
	-rm composer.lock
	-rm -rf node_modules
	-rm -rf node/dist

composer.lock: 
	$(MAKE) prepare

# ---import trads from loco to local---
.PHONY=export-trads
export-trads: composer.lock
	@$(PHP_CLI) /bin/bash -c "php -f export_trads.php"

.PHONY=import-trads-from-loco-to-local
import-trads-from-loco-to-local: export-trads # alias of export-trads, more explicit

# ---export trads from local to loco---
.PHONY=import-trads
import-trads: composer.lock
	@$(PHP_CLI) /bin/bash -c "php -f import_trads.php"

.PHONY=exports-trads-from-local-to-loco
exports-trads-from-local-to-loco: import-trads # alias of import-trads, more explicit

.PHONY=pull-update-trads
pull-update-trads: import-trads-from-loco-to-local exports-trads-from-local-to-loco update-trads

.PHONY=update-trads
update-trads: composer.lock
	@$(PHP_CLI) /bin/bash -c "php -f update_trads.php"

.PHONY=convert-mobile
convert-mobile: composer.lock
	@$(PHP_CLI) /bin/bash -c "php -f convert_mobile.php"
