$0 DATASET@SNAPPREFIX sync-initial DST
$0 DATASET@SNAPPREFIX sync DST
$0 DATASET@SNAPPREFIX clean COUNT
+ FIFO=1
EOF
exit 1
}
-enccmd=(gpg --compress-level 0 --encrypt --recipient offline)
+mk_fifo() {
+ [[ -z $FIFO ]] || {
+ mkfifo $dst/$latest_filename.zfs.zst.age
+ echo $dst/$latest_filename.zfs.zst.age
+ }
+}
+
+enccmd=(~stargrave/bin/age -R /home/stargrave/.age/general.pub)
[[ $# -ge 2 ]] || usage
snaps=(${(f)snaps})
latest=${snaps[1]}
latest_filename=${latest:gs#/#%}
+dst=$3
case $action in
snap-initial)
print $what-$now
;;
sync-initial)
- dst=$3
[[ -d $dst ]] || usage
+ mk_fifo
setopt PIPE_FAIL
- zfs send -Rv $latest | zstd | $enccmd > $dst/$latest_filename.zfs.zst.gpg
+ zfs send -Rwv $latest | zstdmt | $enccmd > $dst/$latest_filename.zfs.zst.age
sync
touch $dst/$latest_filename.from
;;
sync)
- dst=$3
[[ -d $dst ]] || usage
- latest_dst=($dst/*~$dst/.*(.L0Onn[1]))
+ mk_fifo
+ latest_dst=($dst/*.from~$dst/.*(.Onn[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
+ zfs send -Rwv -i ${latest_dst:gs#%#/} $latest | zstdmt | $enccmd > \
+ $dst/$latest_filename.zfs.zst.age
set +x
sync
print $latest_dst > $dst/$latest_filename.from