.PHONY: help
.DEFAULT_GOAL := help
USER_ID = $(shell id -u)
GROUP_ID = $(shell id -g)
export UID = $(USER_ID)
export GID = $(GROUP_ID)
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
shell: ## Open dockerized Bash terminal
@docker compose run --no-deps --rm shell
pycli: ## Open dockerized python command line interface
@docker compose run --no-deps --rm shell python3
python: ## Launch PYTHON daemon for one directory, eg make python ./domains-classifier
WORKING_DIR="$(filter-out $@,$(MAKECMDGOALS))" docker compose up --no-deps --force-recreate python
nodejs: ## Launch NODEJS daemon for one directory, eg make nodejs ./base-line
WORKING_DIR="$(filter-out $@,$(MAKECMDGOALS))" docker compose up --no-deps --force-recreate nodejs
reset: ## Reset files permissions for all directory
@docker compose run --no-deps --rm shell bash -c "find /app -user daemon -exec chown ${UID}:${GID} {} \;"
version-major: ## Create a major version for a directory, e.g. make version-major mapping-tools
@./bin/version-major.sh "$(filter-out $@,$(MAKECMDGOALS))"
version-minor: ## Create a minor version for a directory, e.g. make version-minor mapping-tools
@./bin/version-minor.sh "$(filter-out $@,$(MAKECMDGOALS))"
version-patch: ## Create a patch version for a directory, e.g. make version-patch mapping-tools
@./bin/version-patch.sh "$(filter-out $@,$(MAKECMDGOALS))"
publish: ## Publish all web services
@./bin/publish.sh
get-version: ## Get the last version of a directory (useful to deployment)
@git tag | grep "$(filter-out $@,$(MAKECMDGOALS))" | sort -V | tail -1
examples: ## Launch examples for a directory, e.g. make examples mapping-tools
@npx httpyac --all "$(filter-out $@,$(MAKECMDGOALS))/examples.http"
example-metadata: ## Give an example metadata, from examples.http, e.g. make example-metadata affiliations-tools 3
@./bin/generate-example-metadata.mjs $(filter-out $@,$(MAKECMDGOALS))
generate-example-tests: ## Convert examples.http to test.hurl, e.g. make generate-example-tests affiliations-tools
@./bin/generate-example-tests.mjs $(filter-out $@,$(MAKECMDGOALS)) > $(filter-out $@,$(MAKECMDGOALS))/tests.hurl
test: ## Launch tests for a directory, e.g. make test mapping-tools
@hurl --test "$(filter-out $@,$(MAKECMDGOALS))/tests.hurl"
test-all: ## Launch tests for all directories
@hurl --test */tests.hurl
test-report: ## Add a test to the tests results, e.g. make test-report affiliations-tools
@hurl --test "$(filter-out $@,$(MAKECMDGOALS))/tests.hurl" --report-html tests-results
test-report-all: ## Launch tests for all directories
@rm -rf tests-results
@hurl --test */tests.hurl --report-html tests-results
# Remove error message about lacking rules for targets' parameters
%:
@: