NAME ?= mdcat
SRCS = $(NAME).py setup.py

MD_FILE ?= -

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


.PHONY: install
install:
    pip install --ignore-installed .
    pip show $(NAME)

.PHONY: uninstall
uninstall:
    pip uninstall --yes $(NAME)


$(ACTIVATE):
    python3 -m venv $(VENV)
    @touch $(@)

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

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

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


.PHONY: run
run: deps $(ACTIVATE)
    . $(ACTIVATE) ; python -- $(NAME).py -- $(MD_FILE)

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


.PHONY: clean
clean:
    rm -rf $(VENV) build $(NAME).egg-info .mypy_cache