NAME ?= syslogsearch

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

.PHONY: run
run: $(ACTIVATE)
    . $(ACTIVATE) ; python3 -m $(NAME) --verbose --debug --reverse


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

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

.PHONY: check
check: $(ACTIVATE)
    . $(ACTIVATE) ; mypy --pretty --python-version 3.8 --ignore-missing-imports --check-untyped-defs $(wildcard *.py)
    . $(ACTIVATE) ; flake8 --color always --max-line-length 120 $(wildcard *.py)

$(ACTIVATE): requirements.txt
    python3 -m venv $(VENV)
    . $(ACTIVATE) ; pip install -U setuptools wheel
    . $(ACTIVATE) ; pip install -U mypy flake8
    . $(ACTIVATE) ; pip install -Ur requirements.txt
    @touch $(@)

%.pem %-key.pem:
    openssl req -x509 \
        -newkey rsa:4096 -sha256 -nodes -keyout $(*)-key.pem \
        -days 365 -subj "/CN=$(*)" -addext "subjectAltName=DNS:$(*),DNS:*.$(*),IP:127.0.0.1" -out $(*).pem

.PHONY: clean
clean:
    rm -rf $(VENV) .mypy_cache $(wildcard *.pem)
    find . -depth -type d -name '__pycache__' -exec rm -rf {} \;