#! /bin/bash
#!/bin/bash                                                                                                                                       
# the folder you've selected (%u)
FOLDER=${1}
# user and path of the remote pc (second parameter)
TO='MyUser2@333.222.111.1:/home/MyUser2/HomeShare'

# foldername (to create it remote)
FOLDERNAME=${FOLDER##*/}
# count files
CNT=$(ls -l $FOLDER | grep ^- | awk '{print $9}' | wc -l)

dbusRef=$(kdialog --title "Kopiervorgang" --progressbar "Kopiervorgang gestartet! Der Ordner wird jetzt kopiert. Je nach Größe kann sowas dauern..." $CNT)
qdbus $dbusRef org.kde.kdialog.ProgressDialog.showCancelButton true
sleep 1

# get DEST and USER from  $TO
DEST=`echo $TO | cut -d : -f 1`
USER=`echo $DEST | cut -d @ -f 1`

# mit "mkdir -p 'home etc.'" umgeht man die leerzeichenproblematik
ssh $DEST "mkdir -p '/home/$USER/HomeShare/$FOLDERNAME'"

inc=0
find $FOLDER -type f -print0 | while read -d $'\0' file
do
   if [ $(qdbus $dbusRef org.kde.kdialog.ProgressDialog.wasCancelled) == "false" ]
   then
           qdbus $dbusRef org.kde.kdialog.ProgressDialog.setLabelText "Kopiere $file ==>  $TO"
           qdbus $dbusRef org.kde.kdialog.ProgressDialog.showCancelButton true
           inc=$(expr $inc + 1)
           sleep 0.5
           scp "${file}" $TO/$FOLDERNAME
# noch Probleme mit Leerzeichen! aber theoretisch lösbar denn
# scp myfile.txt 'user@host:"/home/user/HomeShare/test it"'
# hat funktioniert!
#	   scp "${file}" '${DEST}:"/home/${USER}/HomeShare/${FOLDERNAME}"'
           qdbus $dbusRef Set org.kde.kdialog.ProgressDialog value $inc
           qdbus $dbusRef org.kde.kdialog.ProgressDialog.setLabelText "${file} erfolgreich kopiert"
           qdbus $dbusRef org.kde.kdialog.ProgressDialog.showCancelButton true
           sleep 1.75
   else
           kdialog --title "Abbruch" --sorry "Vorgang abgebrochen!"
           break
   fi
done

qdbus $dbusRef close
