TF:=terraform
SSH:=ssh
USER_SSH_OPTS:=
SSH_OPTS:=-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $(USER_SSH_OPTS)
RUN_EPOCH:=$(shell date +%s)

.PHONY: all
all: up

.PHONY: rebuild
rebuild: down up

.PHONY: up
up:
	$(TF) apply -auto-approve

.PHONY: down
down:
	$(TF) destroy -auto-approve

.PHONY: ssh
ssh:
	$(SSH) $(SSH_OPTS) root@`$(TF) output ipv4`

attic:
	install -dm755 $@

.PHONY: backup
backup: backup-history backup-ssl backup-gitea

.PHONY: backup-history
backup-history: attic
	-$(SSH) $(SSH_OPTS) root@`$(TF) output ipv4` 'cat /root/.ash_history' > attic/.ash_history.$(RUN_EPOCH)
	[ -z attic/.ash_history.$(RUN_EPOCH) ] && rm attic/.ash_history.$(RUN_EPOCH) || ln -sf attic/.ash_history.$(RUN_EPOCH) attic/.ash_history

.PHONY: backup-gitea
backup-gitea: attic
	$(SSH) $(SSH_OPTS) root@`$(TF) output ipv4` 'tar cvf - /var/lib/gitea /etc/gitea' > /attic/var-lib-gitea.tar.$(RUN_EPOCH)
	ln -sf attic/var-lib-gitea.tar.$(RUN_EPOCH) attic/var-lib-gitea.tar

.PHONY: backup-ssl
backup-ssl: attic
	$(SSH) $(SSH_OPTS) root@`$(TF) output ipv4` 'tar cvf - /etc/ssl/uacme' > attic/etc-ssl-uacme.tar.$(RUN_EPOCH)
	ln -sf attic/etc-ssl-uacme.tar.$(RUN_EPOCH) attic/etc-ssl-uacme.tar
