# Makefile for refcat. # use .env if present, https://lithic.tech/blog/2020-05/makefile-dot-env ifneq (,$(wildcard ./.env)) include .env export endif SHELL := /bin/bash PY_FILES := $(shell find . -name \*.py -print) PKGNAME := refcat # The "zipapp" we build, cf. PEP441, https://www.python.org/dev/peps/pep-0441/, # https://shiv.readthedocs.io/ ZIPAPP := $(PKGNAME).pyz # IMPORTANT: Python version on dev and target *must match* (up to minor version) # e.g. for aitio (2021), you might want to use: # make refcat.pyz PYTHON_INTERPRETER='"/usr/bin/env python3.7"' PYTHON_INTERPRETER := "/usr/bin/env python3.7" .PHONY: test test: pytest -v tests $(ZIPAPP): $(PY_FILES) # https://shiv.readthedocs.io/en/latest/cli-reference.html # note: use SHIV_ROOT envvar to override expansion dir (e.g. if home is networked) shiv --reproducible --compressed --entry-point refcat.cli:main --python $(PYTHON_INTERPRETER) --output-file $(ZIPAPP) . .PHONY: deploy deploy: $(ZIPAPP) ifndef DEPLOY_TARGET $(error DEPLOY_TARGET is not set) else rsync -avP $^ ${DEPLOY_TARGET} endif .PHONY: fmt fmt: yapf -p -i -r $(PKGNAME) tests .PHONY: clean clean: rm -rf .pytest_cache/ rm -rf build/ rm -rf dist/ rm -rf $(PKGNAME).egg-info/ rm -rf $(ZIPAPP) find . -name "__pycache__" -exec rm -rf "{}" +