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