# https://www.gnu.org/software/make/manual/make.html

all: clean setup build update_dependencies
	@echo "all"

setup_development_pip:
	@echo "setup_development_pip"
	python -m pip install --upgrade pip
	pip check

setup_development_setuptools:
	@echo "setup_development_setuptools"
	python -m pip install setuptools wheel twine
	pip check

setup_development:
	@echo "setup_development"
	python setup.py develop
	pip check

setup_frontend: build_frontend
	@echo "setup_frontend"

build_setup_py:
	@echo "build_setup_py"
	pip install -e .
	pip check

build_frontend:
	@echo "build_frontend"
	@echo "npm -v"
	npm -v
	@echo "npm install"
	npm install

build_wheel_dist:
	@echo "build_wheel_dist"
	python setup.py sdist bdist_wheel
	pip check

build_wheel:
	@echo "build_wheel"
	python -m build --wheel
	pip check

setup_pip_compile:
	@echo "pip_compile"
	pip-compile -r requirements/build.in
	pip-compile -r requirements/docs.in
	pip-compile -r requirements/tests.in
	pip-compile -r requirements/dev.in
	pip check

get_python_requirements_from_txt:
	@echo "get_python_requirements_from_txt"
	. scripts/script_get_python_requirements_from_txt.sh

setup_pip_install:
	@echo "pip_install"
	pip install -r requirements/build.txt
	pip install -r requirements/docs.txt
	pip install -r requirements/tests.txt
	pip install -r requirements/dev.txt
	pip check

setup_pip: setup_development_pip setup_pip_compile setup_pip_install get_python_requirements_from_txt

love:
	@echo "not war!"

vcs_commit:
	git add .
	git commit -m "git_commit_and_push via make"

vcs_push:
	git push

vcs_pull:
	git pull

vcs: vcs_commit vcs_push vcs_pull

clean_eggs:
	@echo "clean_eggs"
	rm -rf .eggs
	rm -rf flask_covid19.egg-info

clean_node_modules:
	@echo "clean_node_modules"
	rm -rf node_modules
	rm -rf src/covid19/node_modules

clean_static_vendor:
	@echo "clean_node_modules"
	rm -rf src/covid19/static/vendor

clean_checkmate:
	@echo "clean_checkmate"
	rm -rf .checkmate

clean: clean_eggs clean_node_modules clean_static_vendor clean_checkmate
	@echo "clean"

setup: setup_development_pip setup_development_setuptools setup_development setup_frontend
	@echo "setup"

build: build_setup_py build_wheel_dist build_wheel build_frontend
	@echo "build"

update_dependencies: setup_pip_compile get_python_requirements_from_txt setup_pip_install
	@echo "dependencies"