SRC ?= nextcloud_tasks_tui

VENV ?= venv
ACTIVATE = $(VENV)/bin/activate


.PHONY: run
run: deps
    ./venv/bin/python3 -m $(SRC) -h


.PHONY: deps
deps: $(VENV)/.requirements.txt

.PHONY: dev-deps
dev-deps: $(VENV)/.requirements-dev.txt

$(ACTIVATE):
    python3 -m venv $(VENV)
    . $(ACTIVATE) ; pip install setuptools wheel
    @touch $(@)

$(VENV)/.%: % $(ACTIVATE)
    . $(ACTIVATE) ; pip install -r $(patsubst .%,%,$(notdir $(@)))
    @touch $(@)


.PHONY: check
check: dev-deps
    . $(ACTIVATE) ; mypy --ignore-missing-imports $(SRC)
    . $(ACTIVATE) ; flake8 --max-line-length 120 $(SRC)


.PHONY: install
install:
    pip install .[markdown]

.PHONY: uninstall
uninstall:
    pip uninstall $(subst _,-,$(SRC))


.PHONY: clean
clean:
    rm -rf $(VENV) .mypy_cache build $(SRC).egg-info
    find . -ignore_readdir_race -type d -name '__pycache__' -exec rm -rf {} \; >/dev/null 2>&1 || true