#!/bin/bash

((bs=256*1024))

outfile=$1
shift

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

if test -z "$ruser"; then
	rsize=`bbftp $@ -p 1 -e "pipe ls -l \"$lfile\"" $rhost 2>/dev/null | awk '{print \$5}'`
	if test -z "$rsize"; then rsize="0"; fi
	((ss=rsize/bs))
	dd bs=$bs skip=$ss if="$lfile" | bbftp $@ -e "pipe dd bs=$bs seek=$ss of=\"$lfile\"" $rhost
else
	rsize=`bbftp $@ -p 1 -e "pipe ls -l \"$lfile\"" -u $ruser $rhost 2>/dev/null | awk '{print \$5}'`
	if test -z "$rsize"; then rsize="0"; fi
	((ss=rsize/bs))
	dd bs=$bs skip=$ss if="$lfile" | bbftp $@ -e "pipe dd bs=$bs seek=$ss of=\"$lfile\"" -u $ruser $rhost
fi
