.PHONY: help virtual-environment update-venv .DEFAULT_GOAL := help define PRINT_HELP_PYSCRIPT import re, sys for line in sys.stdin: match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line) if match: target, help = match.groups() print("%-20s %s" % (target, help)) endef export PRINT_HELP_PYSCRIPT help: @python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST) virtual-environment: venv ## setup a virtual environment for development venv: requirements.txt ## setup a virtual environment for development [ -d venv ] || python3 -m venv venv venv/bin/python -m pip install -r requirements.txt touch venv update-venv: ## update the development virtual environment [ -d venv ] || python3 -m venv venv venv/bin/python -m pip install --upgrade -r requirements.txt touch venv download: venv download.py ## download all the data venv/bin/python download.py