-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathMakefile
84 lines (70 loc) · 2.5 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
# Project root dir, relative to current dir (.|..|../..|…)
MANALA_DIR := $(patsubst %/.,%,$(patsubst %.manala/..,%.,$(patsubst %Makefile,%..,$(lastword $(MAKEFILE_LIST)))))
# Current dir, relative to project root dir (.|dir|dir/dir|…)
MANALA_CURRENT_DIR = $(patsubst ./%,%,.$(patsubst $(realpath $(CURDIR)/$(MANALA_DIR))%,%,$(CURDIR)))
# Is current dir root ? (|1)
MANALA_CURRENT_ROOT = $(if $(filter .,$(MANALA_CURRENT_DIR)),1)
# Cache dir, relative to project dir
MANALA_CACHE_DIR = .manala/.cache
###########
# Project #
###########
include $(MANALA_DIR)/.manala/make/text.mk
include $(MANALA_DIR)/.manala/make/help.mk
include $(MANALA_DIR)/.manala/make/os.mk
include $(MANALA_DIR)/.manala/make/math.mk
include $(MANALA_DIR)/.manala/docker/docker.mk
##########
# Docker #
##########
MANALA_DOCKER_COMPOSE_ENV += \
MANALA_DIR=$(realpath $(MANALA_DIR)) \
MANALA_CACHE_DIR=$(realpath $(shell dir=$(MANALA_DIR)/$(MANALA_CACHE_DIR) ; mkdir -p $${dir} ; echo $${dir}))
# Command
MANALA_DOCKER_COMMAND = exec --user lazy
MANALA_DOCKER_COMMAND_SERVICE = system
# Services
##########
# System #
##########
# Docker commands only available *OUTSIDE* docker environment
ifndef MANALA_DOCKER
MANALA_HELP += $(call manala_help_section, System)
MANALA_HELP += $(call manala_help,up, Create and start local system (WAIT|DEBUG))
up: MANALA_DOCKER_DEBUG = $(if $(DEBUG),1)
up:
@$(call manala_log, Builds$(,) creates and starts docker containers…)
$(manala_docker_compose) up \
$(if $(WAIT), --wait)
.PHONY: up
MANALA_HELP += $(call manala_help,stop, Stop local system)
stop:
@$(call manala_log, Stop docker containers…)
$(manala_docker_compose) stop
.PHONY: stop
MANALA_HELP += $(call manala_help,sh, Shell to local system (DIR))
sh: MANALA_DOCKER_COMMAND_DIR ?= $(if $(findstring command line,$(origin DIR)),$(DIR))
sh:
if [ ! -t 0 ] ; then \
$(call manala_docker_command, --no-TTY) sh -s ; \
else \
$(manala_docker_command) zsh --login ; \
fi
.PHONY: sh
MANALA_HELP += $(call manala_help,clean,Clean local system)
clean:
@$(call manala_confirm, Confirm system cleaning)
@$(call manala_log, Stops and removes docker containers$(,) networks$(,) volumes$(,) images…)
$(manala_docker_compose) down \
--rmi all \
--volumes \
--remove-orphans
@$(call manala_log, Removes old docker images…)
$(manala_docker) images \
--filter reference='elao:*' \
--format "{{.ID}}" \
| xargs -r $(manala_docker) rmi --force
@$(call manala_log, Delete cache dir…)
rm -Rf $(MANALA_DIR)/$(MANALA_CACHE_DIR)
.PHONY: clean
endif