#!/bin/sh
# 
# write partition-image to file on FTP server
#
# Copyright (c) 2003-2006 Hubert Feyrer <hubert@feyrer.de>
#

tmpfile=/tmp/ftpput.$$

user_server=$1
file=$2
diskpart=$3

user=`echo $user_server | sed 's/@.*$//'`
server=`echo $user_server | sed 's/^[^@]*@//'`

if [ "$user" = "$server" -o "$user" = "" ]; then
	# no user@ given - use default
	user=install
fi

if [ "$diskpart" = "" ]; then 
        diskpart=rwd0d             # Change this to "rsd0d" for a SCSI disk
fi

if [ "$file" = "" ]; then 
        file=${diskpart}.gz
fi

if [ "$server" = "" ]; then
	echo "Usage: $0 [user@]FTPserverIP [file] [disk+partition]"
	echo "e.g.   $0 ftp.my.com my-r${disk}d.gz sd0f"
	echo "       GZIP=1 $0 ... (for minimum compression)"
	echo "       $0 user@ftp.my.com image.gz"
	echo ""
	echo "Default: disk+partition=${diskpart}, user=$user, GZIP=9"
	exit 1
fi

gzip_opt=-${GZIP}
if [ "$gzip_opt" = "-" ]; then
	gzip_opt=-9
fi
unset GZIP		# gzip(1) processes the variable differently

#echo HF: file=$file
#echo HF: diskpart=$diskpart
#echo HF: user=$user
#echo HF: server=$server
#echo HF: gzip_opt=$gzip_opt
#exit 666

echo -n "Enter password for $user@$server: "
stty -echo
read pass
stty echo

if [ "$pass" = "" ]; then
        echo "Empty password not allowed, aborting."
        exit 1
fi           

echo ""
echo ""
echo "[1mWelcome to g4u, starting upload of ${diskpart} now...[0m"
echo ""

rm -f $tmpfile
echo >>$tmpfile open $server
echo >>$tmpfile user $user $pass
echo >>$tmpfile bin
echo >>$tmpfile put - $file
echo >>$tmpfile bye

#echo '( cat $tmpfile ; dd progress=1 if=/dev/r'${diskpart}'  bs=1m | gzip '${gzip_opt}' ) | ftp -n'
#echo tmpfile:
#cat $tmpfile
#
#for i in 5 4 3 2 1 ; do
#	echo $i ; sleep 1
#done

dd if=/dev/r${diskpart} ibs=1m \
| progress sh ftpput $tmpfile ${gzip_opt}

rm -f $tmpfile

echo ""
