#!/usr/bin/env zsh setopt ERR_EXIT EXTENDED_GLOB usage() { cat <$dst/$latest_filename.zfs.zst.enc sync touch $dst/$latest_filename.from ;; sync) [[ -d $dst ]] || usage mk_fifo latest_dst=($dst/*.from~$dst/.*(.Onn[1])) [[ $latest_dst ]] latest_dst=${latest_dst[1]} latest_dst=$latest_dst:t:r [[ $latest_dst != $latest_filename ]] setopt PIPE_FAIL set -x zfs send -Rwv -i ${latest_dst:gs#%#/} $latest | zstdmt | enccmd > \ $dst/$latest_filename.zfs.zst.enc 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