-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
50 lines (41 loc) · 1.13 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
ENV ?= $(realpath .env)
STACKS = \
stacks/browserboi \
stacks/collabora \
stacks/media-stack \
stacks/monero \
stacks/ollama \
stacks/traefik \
stacks/whoami
# Define the path to your ed25519 key
SSH_KEY := $(HOME)/.ssh/id_ed25519
# Define a custom Git command that uses the specific SSH key
GIT_SSH_COMMAND := ssh -i $(SSH_KEY) -o IdentitiesOnly=yes
force: ;
default: all
$(STACKS): force
@echo deploying $@
make -C $@ deploy ENV=$(ENV)
.PHONY: deploy
deploy: $(STACKS)
.PHONY: all
all: deploy
.PHONY: update
update:
@echo "Fetching updates..."
@GIT_SSH_COMMAND="$(GIT_SSH_COMMAND)" git fetch
@if [ -z "$$(GIT_SSH_COMMAND="$(GIT_SSH_COMMAND)" git status --porcelain -uno)" ]; then \
echo "No local changes in tracked files. Performing git pull..."; \
GIT_SSH_COMMAND="$(GIT_SSH_COMMAND)" git pull; \
else \
echo "Local changes in tracked files detected. Skipping git pull."; \
GIT_SSH_COMMAND="$(GIT_SSH_COMMAND)" git status -uno; \
fi
# task used for cron job updates
.PHONY: cron
cron:
ifneq ($(wildcard .pause),)
@echo File '.pause' exists. Exiting Makefile.
else
make -C . deploy update
endif