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