#!/usr/bin/env bash set -e source ~/.config/restic-backup/config.sh startsudo() { sudo -v ( while true; do sudo -v; sleep 50; done; ) & SUDO_PID="$!" } stopsudo() { kill "$SUDO_PID" sudo -k } cleanup() { pass gocrypt close || true > /dev/null 2>&1 stopsudo } trap cleanup EXIT SIGINT SIGTERM startsudo pass gocrypt close > /dev/null 2>&1 || true PASS_GOCRYPT_CLOSE_TIMEOUT=2147483648 pass gocrypt open for dir in ${RESTIC_BACKUP_SUBVOL_PATHS[@]}; do parent="$(dirname $dir)" snap="$parent/$(basename $dir)-restic" echo "snap = $snap" sudo btrfs subvol delete "$snap" > /dev/null 2>&1 || true sudo btrfs subvol snap "$dir" "$snap" restic-wrapper --verbose backup --exclude-caches "$snap" sudo btrfs subvol delete "$snap" || true done stopsudo