#!/bin/bash
#
#Beschreibung: lädt eine übergebene Datei auf den Webspace 
#Version 0.2 Versioninfo siehe Ende der Datei
#benötigt: curlftpfs, xsel, ~/.netrc
#
#Aufruf: wwwabload.sh Datei [Benutzername Passwort]
#
#Hinweise und Fehler an tuxator@tuxator.de 
#
#Status: ok
###################################################################
#
#Variablen
retval=0
host="tuxator.de" 								#Webspace
username=${2}									#Benutzername
password=${3}									#Passwort
ftpdir="/public/"								#Zielverzeichnis
mntdir=$(echo "${HOME}/webspace")				#Mountverzeichnis
upload_file=${1}								#Datei zum Upload
link=$(echo ${host}${ftpdir}$(basename ${upload_file}))		#Link
#
#Prüfung auf Voraussetzungen
#erforderliche Programme vorhanden?
for cmd in /usr/bin/curlftpfs /usr/bin/xsel
do
	if [[ ! -e ${cmd} ]]; then
		retval=1
	fi
done
#Dateiname übergeben?
if [[ ! -f ${1} ]]; then
	retval=2
fi
#Benutzername und Passwort vorhanden?
if [[ ! ${2} ]]; then
	if [[ ! -f ~/.netrc ]]; then
		retval=3
	fi
else
	if [[ ! ${3} ]]; then
		retval=3
	else
		userdata=$(echo "${2}:${3}@")
	fi
fi
#Mountpoint vorhanden
if [[ ! -d ${mntdir} ]]; then
	retval=4
fi
###################################################################
if (( ${retval} == 0 )); then
	# Webspace mounten
	args=$(echo ${userdata}${host}${ftpdir} ${mntdir})
	curlftpfs ${args}
	#Erfolgreich?
	if (( ${?} == 0 )); then
		# Dateien auf Webspace übertragen
		cp -n ${upload_file} ${mntdir}
		# Webspace unmounten
		ismnt=$(grep -c ${mntdir} /etc/mtab)
		while (( ${ismnt} > 0 )); do
			fusermount -u ${mntdir} 2> /dev/null
			ismnt=$(grep -c ${mntdir} /etc/mtab)
		done
		# Link in Zwischenablage kopieren (xsel)
		echo ${link} | xsel -ib
	fi
fi
###################################################################
#Fehlerbehandlung
case ${retval} in
	1)
	echo "${0}: Ausführung nicht möglich. ${cmd} nicht gefunden"
	;;
	2)
	echo "${0}: Ausführung nicht möglich. Keine Datei übergeben."
	;;
	3)
	echo "${0}: Ausführung nicht möglich. Benutzername oder Passwort fehlen."
	echo "Tragen Sie Host, Benutzername und Passwort in die Datei ~/.netrc ein oder"
	echo "übergeben Sie Benutzernamen und Passwort auf der Befehlszeile"
	echo "${0} Datei [Benutzername Passwort]" 
	;;
	4)
	echo "${0}: Ausführung nicht möglich. Mountpunkt ${mntdir} nicht vorhanden."
	echo "Benutzen Sie mkdir ${mntdir} um ihn zu erstellen."
	;;
esac
###################################################################
exit ${retval}
##########################################################################
#Versionsinfo:                                                           #
#0.2                                                                     #
#Prüfung auf Mountpoint integriert                                       #
##########################################################################
