-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
68 lines (54 loc) · 1.67 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
.PHONY: all root_check service directories collectstatic migrate ready_to_deploy deploy down
CURRENT_DIR:=$(shell pwd)
PYTHON:=$(shell which python3)
DOCKER_COMPOSE:=$(shell which docker-compose)
SYSTEMCTL:=$(shell which systemctl)
SYSTEMD_UNITFILE_NAME:=rcrs-webviewer.service
SYSTEMD_UNITS_PATH:=/etc/systemd/system
MANAGE_PY:=$(CURRENT_DIR)/manage.py
DOCKER_COMPOSE_YAML:=$(CURRENT_DIR)/docker-compose.yaml
SYSTEMD_SERVICE_TEMPLATE:=$(CURRENT_DIR)/meta/$(SYSTEMD_UNITFILE_NAME)
SYSTEMD_SERVICE_SAVE:=$(SYSTEMD_UNITS_PATH)/$(SYSTEMD_UNITFILE_NAME)
define cmd
@echo [*] $(1)
@$(1)
endef
all: ready_to_deploy
root_check:
ifneq '$(shell id -u)' '0'
@echo " !>> You are not root, run this target as root please: Permission denied"
exit 1
endif
service: root_check
cat ${SYSTEMD_SERVICE_TEMPLATE} | \
sed 's#{{DockerCompose}}#$(DOCKER_COMPOSE)#;s#{{DockerComposeYaml}}#$(DOCKER_COMPOSE_YAML)#g;s#{{WorkingDirectory}}#$(CURRENT_DIR)#g' - \
> $(SYSTEMD_SERVICE_SAVE)
# !! You should be root !!
$(call cmd,\
systemctl enable $(SYSTEMD_UNITFILE_NAME)\
)
# !! You should be root !!
directories:
$(call cmd,\
mkdir -p $(CURRENT_DIR)/prepared_logs $(CURRENT_DIR)/web_viewer_logs $(CURRENT_DIR)/nginx_logs $(CURRENT_DIR)/db \
)
collectstatic:
$(call cmd,\
$(PYTHON) $(MANAGE_PY) collectstatic --noinput -i *.zip\
)
migrate:
$(call cmd,\
$(PYTHON) $(MANAGE_PY) migrate\
)
ready_to_deploy: service directories collectstatic migrate service
deploy: root_check ready_to_deploy
$(call cmd,\
$(DOCKER_COMPOSE) -f $(DOCKER_COMPOSE_YAML) build\
)
$(call cmd,\
$(SYSTEMCTL) restart $(SYSTEMD_UNITFILE_NAME)\
)
down:
$(call cmd,\
$(SYSTEMCTL) stop $(SYSTEMD_UNITFILE_NAME)\
)