#!/bin/bash

((bs=256*1024))

infile=$1
shift

pat="(.*):(.*)"
if [[ "$infile" =~ $pat ]]; then
        uh=${BASH_REMATCH[1]}
        rfile=${BASH_REMATCH[2]}
	pat="(.*)@(.*)"
        if [[ "$uh" =~ $pat ]]; then
                ruser=${BASH_REMATCH[1]}
                rhost=${BASH_REMATCH[2]}
        else
                ruser=""
                rhost=$uh
        fi
else
        rfile=$infile
        ruser=""
        rhost=""
fi

lsize=`ls -l "$rfile" 2>/dev/null | awk '{print $5}'`
if test -z "$lsize"; then
        lsize="0"
fi
((ss=lsize/bs))

if test -z "$ruser"; then
	bbftp $@ -e "pipe dd bs=$bs skip=$ss if=\"$rfile\"" $rhost | dd bs=$bs seek=$ss of="$rfile"
else
	bbftp $@ -e "pipe dd bs=$bs skip=$ss if=\"$rfile\"" -u $ruser $rhost | dd bs=$bs seek=$ss of="$rfile"
fi
