#!/bin/bash
#
# zfs-transfer-shell
#
# Recibe tres parametros en SSH_ORIGINAL_COMMAND:
#
#   filessystem snap_inicial snap_final
#
# Extrae los argumentos e invoca con sudo a zfs-transfer-send
# 
# 20200310
#

echoerr () {
   echo "[${hname}] $1" >&2 
}

filesystem=$(echo   "${SSH_ORIGINAL_COMMAND}" | awk '{print $1}')
snap_inicial=$(echo "${SSH_ORIGINAL_COMMAND}" | awk '{print $2}')
snap_final=$(echo   "${SSH_ORIGINAL_COMMAND}" | awk '{print $3}')
hname=$(hostname)

[[ "$DEBUG" ]] || DEBUG=0

[[ $DEBUG -gt 0 ]] && echo "SSH_ORIGINAL_COMMAND: $SSH_ORIGINAL_COMMAND" >&2

if [[ -z "$SSH_ORIGINAL_COMMAND" ]]; then
   echoerr "The SSH_ORIGINAL_COMMAND environment variable is empty."
   echoerr "Remember to prefix the SSH public key with:"
   echoerr 
   echoerr   "command=\"\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding"
   echoerr
   echoerr "In the file: ${hname}:${HOME}/.ssh/authorized_keys"
   exit 1
fi

exec sudo /usr/sbin/zfs-transfer-send "$filesystem" "$snap_inicial" "$snap_final"

