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 deploy - Pull latest build and deploy to production.
10+ make update - Update pip dependencies via Python Poetry.
11+ make format - Format code with Python's `Black` library.
12+ make lint - Check code formatting with flake8
13+ make clean - Remove cached files and lock files.
14+ endef
15+ export HELP
16+
17+
18+ .PHONY : run restart deploy update format lint clean help
19+
20+ requirements : .requirements.txt
21+ env : .venv/bin/activate
22+
23+
24+ .requirements.txt : requirements.txt
25+ $(shell . .venv/bin/activate && pip install -r requirements.txt)
26+
27+
28+ all help :
29+ @echo " $$ HELP"
30+
31+
32+ .PHONY : run
33+ run : env
34+ service $(PROJECTNAME ) start
35+
36+
37+ .PHONY : deploy
38+ deploy :
39+ make clean
40+ $(shell . ./deploy.sh)
41+
42+
43+ .PHONY : update
44+ update : env
45+ poetry update
46+ poetry export -f requirements.txt --output requirements.txt --without-hashes
47+
48+
49+ .PHONY : format
50+ format : env
51+ $(shell . .venv/bin/activate && isort ./)
52+ $(shell . .venv/bin/activate && black ./)
53+
54+
55+ .PHONY : lint
56+ lint :
57+ flake8 ./app --count --select=E9,F63,F7,F82 --show-source --statistics
58+
59+
60+ .PHONY : clean
61+ clean :
62+ find . -name ' *.pyc' -delete
63+ find . -name ' __pycache__' -delete
64+ find . -name ' poetry.lock' -delete
65+ find . -name ' Pipefile.lock' -delete
66+ find . -name ' logs/*' -delete
67+ find . -name ' .pytest_cache' -delete
0 commit comments