#! /bin/sh
#
# support smb://[login[:passwd]@]host/service/[path/]file
# requires: basename, grep, sed, smbclient

PATH="/bin:/sbin:/usr/bin:/usr/sbin"

if [ "$#" != "2" ]; then
    echo "usage: `basename $0` smb://server/service/FILE DESTFILE"
    exit 1
fi

src=$1
if echo $src|grep -qE '^smb://[^/@]+@' ; then
	if echo $src|grep -qE '^smb://[^:@]+:[^@]+@' ; then
		passwd=$(echo $src|sed 's|^smb://[^:]\+:\([^@]\+\)@.*|\1|')
		user=$(echo $src|sed 's|^smb://\([^:]\+\):[^@]\+@.*|\1|')
	else
		user=$(echo $src|sed 's|^smb://\([^@]\+\)@.*|\1|')
	fi
	src=$(echo $src|sed 's|^smb://[^@]\+@|smb://|')
else
	user="guest"
fi
service=$(echo $src|sed 's|^smb://\([^/]\+/[^/]\+\)/|//\1|')
file=$(echo $src|sed 's|^smb://[^/]\+/[^/]\+/||')

dest=$2

if [ -z "$service" -o -z "$file" ]; then
	echo "`basename $0`: wrong URL argument"
    exit 1
fi

#echo "smbclient $service $passwd -U $user -N -c \"get $file $dest\""
smbclient $service $passwd -U $user -N -c \"get $file $dest\"

