This repository has been archived by the owner on May 26, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
120 lines (103 loc) · 5.21 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
##
# Various helpful commands
##
.DEFAULT_GOAL := help
LOCALDATE := $(shell date +'%Y%m%d-%H%M')
-include .env
.PHONY: rebuild-caches
rebuild-caches: ## Clear Application cache
@echo '🔧 make clear-app-cache'
@echo ----------------------------------------------------------------
${HOST_REMOTE_PHP_VERSION} ${HOST_REMOTE_PATH}/vendor/bin/drush cr
@echo ----------------------------------------------------------------
@echo '✨ Application caches have been rebuilt!'
@echo
.PHONY: get-remote-db
get-remote-db: ## Dump remote drupal database locally
@echo ----------------------------------------------------------------
@echo '🔧 make get-remote-db'
@echo ----------------------------------------------------------------
make .exec-ssh-cmd CMD="mkdir -p ${HOST_REMOTE_PATH}/backups/db"
make .exec-ssh-cmd CMD="${HOST_REMOTE_PHP_VERSION} ${HOST_REMOTE_PATH}/vendor/bin/drush sql:dump | gzip -5 -c > ${HOST_REMOTE_PATH}/backups/db/$(DB_REMOTE_NAME)_$(LOCALDATE).sql.gz"
@echo ----------------------------------------------------------------
@echo '✨ Database successfully dumped!'
@echo ----------------------------------------------------------------
@echo ----------------------------------------------------------------
@echo 'Retrieving database dump successfull!'
@echo ----------------------------------------------------------------
mkdir -p backups/db
make .exec-rsync-local-cmd SRC=${HOST_REMOTE_PATH}/backups/db/$(DB_REMOTE_NAME)_$(LOCALDATE).sql.gz DEST=./backups/db
@echo ----------------------------------------------------------------
@echo '✨ Remote dump successfully fetched!'
@echo ----------------------------------------------------------------
.PHONY: ddev-import-db
ddev-import-db: ## Dump remote drupal database locally and import them in ddev database.
@echo ----------------------------------------------------------------
@echo '🔧 make ddev-import-db'
@echo ----------------------------------------------------------------
make .exec-ssh-cmd CMD="mkdir -p ${HOST_REMOTE_PATH}/backups/db"
make .exec-ssh-cmd CMD="${HOST_REMOTE_PHP_VERSION} ${HOST_REMOTE_PATH}/vendor/bin/drush sql:dump | gzip -5 -c > ${HOST_REMOTE_PATH}/backups/db/$(DB_REMOTE_NAME)_$(LOCALDATE).sql.gz"
@echo ----------------------------------------------------------------
@echo '✨ Database successfully dumped!'
@echo ----------------------------------------------------------------
@echo ----------------------------------------------------------------
@echo 'Retrieving database dump successfull!'
@echo ----------------------------------------------------------------
mkdir -p backups/db
make .exec-rsync-local-cmd SRC=${HOST_REMOTE_PATH}/backups/db/$(DB_REMOTE_NAME)_$(LOCALDATE).sql.gz DEST=./backups/db
@echo ----------------------------------------------------------------
@echo '✨ Remote dump successfully fetched!'
@echo ----------------------------------------------------------------
ddev import-db --src=backups/db/$(DB_REMOTE_NAME)_$(LOCALDATE).sql.gz
@echo ----------------------------------------------------------------
@echo '✨ Database successfully imported!'
@echo ----------------------------------------------------------------
.PHONY: help
help: ## Show a list of available commands
@echo
@printf '\033[34mAvailable commands:\033[0m\n'
@grep -hE '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) |\
sort |\
awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}'
@echo
.PHONY: .exec-ssh-cmd
.exec-ssh-cmd: ## Execute command over SSH
ifdef SSH_CONFIG
ssh $(SSH_CONFIG) "$(CMD)"
else
ssh -p $(SSH_PORT) -T $(SSH_USER)@$(SSH_HOST) "$(CMD)"
endif
.PHONY: .exec-rsync-local-cmd
.exec-rsync-local-cmd: ## Execute rsync command
ifdef SSH_CONFIG
rsync -avzh --progress $(SSH_CONFIG):$(SRC) $(DEST)
else
rsync -avzh --progress --port=$(SSH_PORT) $(SSH_USER)@$(SSH_HOST):$(SRC) $(DEST)
endif
.PHONY: .exec-rsync-distant-cmd
.exec-rsync-distant-cmd: ## Execute rsync command
ifdef SSH_CONFIG
rsync -avzh --progress $(SRC) $(SSH_CONFIG):$(DEST)
else
rsync -avzh --progress --port=$(SSH_PORT) $(SRC) $(SSH_USER)@$(SSH_HOST):$(DEST)
endif
# Push images to production
.PHONY: push-local-images
push-local-images: ## Push images to production
@echo ----------------------------------------------------------------
@echo '🔧 make push-local-images'
@echo ----------------------------------------------------------------
make .exec-rsync-distant-cmd SRC=./web/sites/default/files/. DEST=${HOST_REMOTE_PATH}/web/sites/default/files
@echo ----------------------------------------------------------------
@echo '✨ All site images were synced!'
@echo ----------------------------------------------------------------
# Pull images from production
.PHONY: pull-production-images
pull-production-images: ## Pull images from production
@echo ----------------------------------------------------------------
@echo '🔧 make pull-production-images'
@echo ----------------------------------------------------------------
make .exec-rsync-local-cmd SRC=${HOST_REMOTE_PATH}/web/sites/default/files/. DEST=./web/sites/default/files
@echo ----------------------------------------------------------------
@echo '✨ All local images were synced!'
@echo ----------------------------------------------------------------