PLUGIN_NAME = easydb-connector-plugin

SRC = src
SRC_WEB = $(SRC)/webfrontend
SRC_SERVER = $(SRC)/server

FYLR_LIBRARY = fylr_lib_plugin_python3
EASYDB_LIBRARY = easydb-library/tools

APITEST_DIR = apitest
APITEST_CSV_DIR = $(APITEST_DIR)/res
APITEST_USERS_CSV = $(APITEST_CSV_DIR)/users.csv
APITEST_CONNECTORS_CSV = $(APITEST_CSV_DIR)/connectors.csv

BUILD_DIR = build
BUILD_WEB = $(BUILD_DIR)/webfrontend
BUILD_L10N = $(BUILD_WEB)/l10n
BUILD_SERVER = $(BUILD_DIR)/server

BUILD_INFO = build-info.json

L10N_DIR = l10n
L10N_FILES = $(L10N_DIR)/$(PLUGIN_NAME).csv

L10N_GOOGLE_KEY = 1glXObMmIUd0uXxdFdiPWRZPLCx6qEUaxDfNnmttave4
L10N_GOOGLE_GID = 1011537616

INSTALL_FILES = \
	$(WEB)/l10n/cultures.json \
	$(WEB)/l10n/cs-CZ.json \
	$(WEB)/l10n/da-DK.json \
	$(WEB)/l10n/de-DE.json \
	$(WEB)/l10n/en-US.json \
	$(WEB)/l10n/es-ES.json \
	$(WEB)/l10n/fi-FI.json \
	$(WEB)/l10n/fr-FR.json \
	$(WEB)/l10n/it-IT.json \
	$(WEB)/l10n/pl-PL.json \
	$(WEB)/l10n/ru-RU.json \
	$(WEB)/l10n/sv-SE.json \
	$(JS) \
	$(BUILD_SERVER)/*.py \
	$(BUILD_SERVER)/$(FYLR_LIBRARY)/*.py \
	$(BUILD_DIR)/manifest.yml

COFFEE_FILES = $(SRC_WEB)/Connector.coffee \
	$(SRC_WEB)/RemoteEasydb.coffee

all: build  ## build

help: ## show this help
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = "(:|##)"}; {printf "\033[36m%-30s\033[0m %s\n", $$2, $$4}'

GOOGLE_URL = https://docs.google.com/spreadsheets/u/1/d
GOOGLE_PARAMS = export?format=csv&gid=

include $(EASYDB_LIBRARY)/base-plugins.make

apitest_csv: ## get CSV data for apitest from google
	mkdir -p $(APITEST_CSV_DIR)
	curl --silent -L -o - "$(GOOGLE_URL)/1hocHDRd1_luvzYPHgjaRkHPMKBfgJsdnS68X9OwrhBA/$(GOOGLE_PARAMS)1712468431" | tr -d "\r" > $(APITEST_USERS_CSV)
	curl --silent -L -o - "$(GOOGLE_URL)/1hocHDRd1_luvzYPHgjaRkHPMKBfgJsdnS68X9OwrhBA/$(GOOGLE_PARAMS)358202583"  | tr -d "\r" > $(APITEST_CONNECTORS_CSV)

build: code $(L10N) buildinfojson ## build all (creates build folder)
	mkdir -p $(BUILD_SERVER)
	cp $(SRC_SERVER)/*.py $(BUILD_SERVER)
	cp -r $(SRC_SERVER)/$(FYLR_LIBRARY) $(BUILD_SERVER)
	cp manifest.master.yml $(BUILD_DIR)/manifest.yml
	cp build-info.json $(BUILD_DIR)/build-info.json
	chmod 777 $(L10N_FILES)
	cp -r l10n $(BUILD_WEB)

clean: clean-base  ## clean build and temporary files

wipe: wipe-base

code: $(JS) ## build Coffeescript code

zip: build ## build zip file for publishing (fylr only)
	(rm $(BUILD_DIR)/$(PLUGIN_NAME).zip || true)
	cp -r $(BUILD_DIR) $(PLUGIN_PATH)
	zip $(BUILD_DIR)/$(PLUGIN_NAME).zip -x *.pyc -x */__pycache__/* -r $(PLUGIN_PATH)/
	rm -rf $(PLUGIN_PATH)
