#!/bin/bash

CONFIG="~/.kcobexputrc"
DEVICE='/dev/ttyUSB0'
SOURCEFILE=$1

if [ -s "$CONFIG" ] ; then
#The config file may be used to specify the device we are going to use,
#by setting DEVICE appropriatly
	. "$CONFIG" 
fi


filesize () {
 wc -c "$1" | awk '{print $1}'
}

checkexit() {
	if [ 0 -ne "$?" ] ; then
		exit
	fi
}



if [ ! "$SOURCEFILE" ] ; then
SOURCEFILE=`kdialog --getopenfilename "$HOME"`
fi
checkexit

DESTFILE=`basename "$SOURCEFILE"`
DESTFILE=`kdialog --title "Cobex transfer..." --inputbox "Select Filename on $DEVICE" "$DESTFILE"` 
checkexit


FILESIZE=`filesize "$SOURCEFILE"`
echo "Filesize $FILESIZE"
DCOPREF=`kdialog --progressbar "Transferring $DESTFILE" "$FILESIZE"` 
TEMPFILE=`mktemp`
ERRFILE=`mktemp`
touch "$TEMPFILE" "$ERRFILE"

dcop "$DCOPREF" showCancelButton true
./cobex_put "$DEVICE" "$SOURCEFILE" "$DESTFILE" 2> "$ERRFILE" > "$TEMPFILE" & 
COBEXPID="$!"

while ps -p "$COBEXPID" > /dev/null ; do 	
	if [ "true" == `dcop "$DCOPREF" wasCancelled` ] ; then
		kill "$COBEXPID"
		break
	fi

	sleep 1
	echo debug `tail -n 1 "$TEMPFILE"`
	PROGRESS=`awk -v 'RS=\r' '{print $2}' "$TEMPFILE" | tail -n 1 `
	echo Progress "$PROGRESS"
	dcop "$DCOPREF" setProgress "$PROGRESS"	
done

dcop "$DCOPREF" close

if [ -s "$ERRFILE" ] ; then
	kdialog --title "Sorry..." --error "`cat "$ERRFILE"`"
fi

rm $TEMPFILE
rm $ERRFILE
