1+ SRCPATH := $(shell pwd)
2+ PROJECTNAME := $(shell basename $(CURDIR ) )
3+ ENTRYPOINT := $(PROJECTNAME ) .ini
4+
5+ define HELP
6+ Manage $(PROJECTNAME ) . Usage:
7+
8+ make run - Run $(PROJECTNAME ) .
9+ make restart - Purge cache & reinstall modules.
10+ make deploy - Pull latest build and deploy to production.
11+ make update - Update pip dependencies via Python Poetry.
12+ make format - Format code with Python's `Black` library.
13+ make lint - Check code formatting with flake8
14+ make clean - Remove cached files and lock files.
15+ endef
16+ export HELP
17+
18+
19+ .PHONY : run restart deploy update format lint clean help
20+
21+ requirements : .requirements.txt
22+ env : .venv/bin/activate
23+
24+
25+ .requirements.txt : requirements.txt
26+ $(shell . .venv/bin/activate && pip install -r requirements.txt)
27+
28+
29+ all help :
30+ @echo " $$ HELP"
31+
32+
33+ .PHONY : run
34+ run : env
35+ service $(PROJECTNAME ) start
36+
37+
38+ .PHONY : restart
39+ restart : env
40+ service $(PROJECTNAME ) stop
41+ make clean
42+ service $(PROJECTNAME ) start
43+ service $(PROJECTNAME ) status
44+
45+
46+ .PHONY : deploy
47+ deploy :
48+ make clean
49+ $(shell . ./deploy.sh)
50+
51+
52+ .PHONY : update
53+ update : env
54+ .venv/bin/python3 -m pip install -U pip
55+ poetry update
56+ poetry export -f requirements.txt --output requirements.txt --without-hashes
57+
58+
59+ .PHONY : format
60+ format : env
61+ $(shell . .venv/bin/activate && isort ./)
62+ $(shell . .venv/bin/activate && black ./)
63+
64+
65+ .PHONY : lint
66+ lint :
67+ flake8 ./app --count --select=E9,F63,F7,F82 --show-source --statistics
68+
69+
70+ .PHONY : clean
71+ clean :
72+ find . -name ' *.pyc' -delete
73+ find . -name ' __pycache__' -delete
74+ find . -name ' poetry.lock' -delete
75+ find . -name ' Pipefile.lock' -delete
76+ find . -name ' logs/*.json' -delete
77+ find . -name ' *.log' -delete
78+ find . -name ' */.pytest_cache' -delete
79+ find . -name ' */logs/*.json' -delete
80+ rm -rf .pytest_cache
81+ rm -rf tests/.pytest_cache
82+ rm -rf clients/tests/.pytest_cache
0 commit comments