51 lines
1.0 KiB
Makefile
51 lines
1.0 KiB
Makefile
# =====CONFIG=====
|
|
PYTHON := python3.6
|
|
VENV := .venv
|
|
|
|
|
|
# =====RECIPES=====
|
|
# Create the virtual environment
|
|
$(VENV)/bin/activate: setup.py
|
|
'$(PYTHON)' -m venv '$(VENV)'
|
|
'$(VENV)/bin/pip' install -e .[develop]
|
|
|
|
venv: $(VENV)/bin/activate
|
|
.PHONY: venv
|
|
|
|
# Format the codebase using Black
|
|
format: venv
|
|
@ '$(VENV)/bin/black' setup.py app
|
|
.PHONY: format
|
|
|
|
# Remove any temporary files
|
|
clean:
|
|
@ rm -rf '$(VENV)' .tox backup_tool
|
|
.PHONY: clean
|
|
|
|
# Pack the package into a zipfile
|
|
backup_tool:
|
|
@ cd app && \
|
|
zip -r ../app.zip * \
|
|
-x "__pycache__/*" "**/__pycache__/*" ".vim/*" "**/.vim/*"
|
|
@ echo "#!/usr/bin/env python3" | cat - app.zip > backup_tool
|
|
@ chmod a+x backup_tool
|
|
@ rm app.zip
|
|
|
|
app: backup_tool
|
|
.PHONY: app
|
|
|
|
# Install the app
|
|
install: app
|
|
cp backup_tool /usr/local/bin
|
|
.PHONY: install
|
|
|
|
# We can't force the develop to have all the versions locally, so
|
|
# the local tests only include python3.6
|
|
test: venv tox.ini
|
|
@ '$(VENV)/bin/tox' -e py36
|
|
.PHONY: test
|
|
|
|
lint: venv
|
|
@ '$(VENV)/bin/tox' -e lint
|
|
.PHONY: lint
|