.PHONY: build_development build_staging build_production push rbac_twirp_gen rbac_twirp_gen_local prettier

build_development:
	docker build -f docker/Dockerfile --build-arg ENV=development --build-arg CODECOV_TOKEN=${CODECOV_TOKEN} -t vienna .

build_staging:
	docker build -f docker/Dockerfile --build-arg ENV=staging -t vienna .

build_production:
	docker build -f docker/Dockerfile --build-arg ENV=production -t vienna .

push:
	@$(shell aws ecr get-login --region us-west-2 --no-include-email)
	docker tag vienna $(TF_VAR_vienna_image)
	docker push $(TF_VAR_vienna_image)

prettier:
	./node_modules/prettier/bin-prettier.js "src/**/*.{ts,tsx}" --write

deploy_staging:
	# Push to origin/staging. Follow deploy on https://jenkins.internal.justin.tv/job/devrel/job/vienna/job/staging/
	CURRENT_BRANCH=$$(git rev-parse --abbrev-ref HEAD) ;\
	echo ">> Push branch $$CURRENT_BRANCH to staging" ;\
	git push --force origin $$CURRENT_BRANCH:staging

rbac_twirp_gen:
	# Update RBAC twirp client. Needs code.justin.tv/devrel/devsite-rbac available in GOPATH.
	# Using twirp typescript plugin
	retool do protoc --proto_path=$(GOPATH)/src:. --twirp_typescript_out=./src/common/clients $(GOPATH)/src/code.justin.tv/devrel/devsite-rbac/rpc/rbacrpc/rbacrpc.proto
	# Formatting code
	./node_modules/prettier/bin-prettier.js ./src/common/clients/*.ts --write

# same as rbac_twirp_gen, but uses a local generator for testing new generator changes.
# prefer rbac_twirp_gen over this.
rbac_twirp_gen_local:
	# Use local version of generator rather than retool.
	protoc --proto_path=$(GOPATH)/src:. --twirp_typescript_out=./src/common/clients $(GOPATH)/src/code.justin.tv/devrel/devsite-rbac/rpc/rbacrpc/rbacrpc.proto
	# Formatting code
	./node_modules/prettier/bin-prettier.js ./src/common/clients/*.ts --write
