distrostore / Makefile
Rafael Calleja
try mounting
7b04f2c
VERSION_CODENAME ?= $(shell grep VERSION_CODENAME /etc/os-release | cut -d'=' -f2)
VERSION_ID ?= $(shell grep VERSION_ID /etc/os-release | cut -d'=' -f2| tr -d '"')
VERSION_NAME ?= $(shell grep ^NAME= /etc/os-release | cut -d'=' -f2 | tr -d '"'| tr '[:upper:]' '[:lower:]')
HOSTNAME ?= $(shell hostname)
IMAGE_PROVIDER ?= docker.io
IMAGE_NAME ?= rafaelcalleja/distrostore
IMAGE_FLAVOR ?= GNOME
IMAGE_TAG ?= $(VERSION_NAME)-$(VERSION_ID)-$(IMAGE_FLAVOR)
IMAGE ?= $(IMAGE_NAME):$(IMAGE_TAG)
REPOSITORY ?= hf.co/$(IMAGE)
GOPASS_FILE ?= .autorestic.yml
GOPASS_KEY ?= $(REPOSITORY)/$(GOPASS_FILE)
CURRENT_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
COMMIT_MESSAGE ?= $(shell date)
RESTORE_DST ?= /tmp/restore
RESTORE_FROM ?= hdd
RESTORE_LOCATION ?= root_backup
SSH_USER ?= $(shell whoami)
SSH_HOST ?= $(shell ip addr show | grep -A 2 'eth' | grep inet | awk '{print $$2}' | cut -d/ -f1 | head -n 1)
SSH_AUTH_SOCK ?= $(shell echo ${SSH_AUTH_SOCK})
default: backup
backup:
time autorestic -c $(CURRENT_DIR)/$(GOPASS_FILE) backup -a && \
git add -A && \
git commit -m "$(COMMIT_MESSAGE)" && \
git push
restore:
cd $(RESTORE_DST); time autorestic restore --from $(RESTORE_FROM) -l $(RESTORE_LOCATION) -c $(CURRENT_DIR)/$(GOPASS_FILE)
save:
gopass insert -f $(GOPASS_KEY) < $(GOPASS_FILE)
load:
gopass show $(GOPASS_KEY) >$(GOPASS_FILE)
show-cron:
@cat $(CURRENT_DIR)/.cron | sed "s|CURRENT_DIR|$(CURRENT_DIR)|g"
build:
docker run --rm --privileged -e BUILDKITD_FLAGS="--allow-insecure-entitlement security.insecure" \
--volume $(CURRENT_DIR):/tmp/work \
--volume "$${HOME}/.docker:/root/.docker:ro" \
--volume $(SSH_AUTH_SOCK):$(SSH_AUTH_SOCK) \
--volume $(RESTORE_DST):$(RESTORE_DST) \
--entrypoint buildctl-daemonless.sh \
moby/buildkit:master \
build \
--frontend dockerfile.v0 \
--local context=/tmp/work \
--local dockerfile=/tmp/work \
--allow security.insecure \
--opt build-arg:SSH_USER=$(SSH_USER) \
--opt build-arg:SSH_HOST=$(SSH_HOST) \
--opt build-arg:ROOTFS=$(RESTORE_DST) \
--output type=image,name=$(IMAGE_PROVIDER)/$(IMAGE),push=true \
--ssh default=$(SSH_AUTH_SOCK)