#!/usr/bin/env zsh set -e setopt EXTENDED_GLOB usage() { cat < $dst/$latest_filename.zfs.zst.gpg sync touch $dst/$latest_filename.from ;; sync) dst=$3 [[ -d $dst ]] || usage latest_dst=($dst/*~$dst/.*(.L0Onn[1])) [[ $latest_dst ]] latest_dst=${latest_dst[1]} latest_dst=${${latest_dst##*/}%.from} [[ $latest_dst != $latest_filename ]] setopt PIPE_FAIL set -x zfs send -Rv -i ${latest_dst:gs#%#/} $latest | zstd | $enccmd > \ $dst/$latest_filename.zfs.zst.gpg set +x sync print $latest_dst > $dst/$latest_filename.from ;; clean) count=$3 [[ -n $count ]] || usage count=$(( $count + 1 )) for snap in $snaps ; do count=$(( $count - 1 )) [[ $count -le 0 ]] || continue zfs destroy -Rv $snap done ;; *) usage ;; esac