#!/bin/sh
if test $# != 2; then
	echo
	echo "Downloads and unpacks Kadu module, icon theme, sound theme or other."
	echo "Usage: autodownload <item_name> <item_type>"
	echo
	exit 1
fi

echo
echo -e "\033[32m>>>\033[0m Downloading $1 $2"
echo

if test -f ../VERSION; then
	KADU_VERSION=`cat ../VERSION`
elif test -f ../../VERSION; then
	KADU_VERSION=`cat ../../VERSION`
else
	KADU_VERSION=`cat ../../../VERSION`
fi

KADU_VERSION=`echo $KADU_VERSION | sed s/-.*//`

ITEM_WEBSITES=`cat $1.web`
if test -z "$ITEM_WEBSITES"; then
	echo -e "\033[31m!!!\033[0m ERROR: Homepage for $1 $2 is unknown"
	echo
	exit 1
fi

ITEM_HREFS=
for ITEM_WEBSITE in $ITEM_WEBSITES; do
	if wget -T 20 -t 2 -N $ITEM_WEBSITE/kadu-$KADU_VERSION-$1.href; then
		ITEM_HREFS=`cat kadu-$KADU_VERSION-$1.href`
		break
	fi
done

if test -z "$ITEM_HREFS"; then
	
	#downloading packages for other versions of Kadu
	#currently not used
	if test -z "$3"; then
		for VER in $3 $4 $5 $6 $7 $8; do
			for ITEM_WEBSITE in $ITEM_WEBSITES; do
				if wget -T 20 -t 2 -N $ITEM_WEBSITE/kadu-$VER-$1.href; then
					ITEM_HREFS=`cat kadu-$KADU_VERSION-$1.href`
					break
				fi
			done
			if ! test -z "$ITEM_HREFS"; then
				break
			fi
		done
	fi

	if test -z "$ITEM_HREFS"; then
		echo -e "\033[31m!!!\033[0m ERROR: Downloading of $1 $2 href-file failed"
		echo
		exit 1
	fi
fi

for ITEM_HREF in $ITEM_HREFS; do
	if wget -T 30 -t 2 -N $ITEM_HREF; then
		ITEM_HREF_NAME=`basename $ITEM_HREF`
		break
	fi
done
if test -z "$ITEM_HREF_NAME"; then
	echo -e "\033[31m!!!\033[0m ERROR: Downloading of $1 $2 package failed"
	echo
	exit 1
fi

echo
echo -e "\033[32m>>>\033[0m Unpacking $1 $2"
echo

rm -rf $1
ITEM_HREF_EXT=`expr "$ITEM_HREF_NAME" : '.*\.\(.*\)'`
if test "$ITEM_HREF_EXT" = gz; then
	TAR_OPTION=z
elif test "$ITEM_HREF_EXT" = bz2; then
	TAR_OPTION=j
else
	echo -e "\033[31m!!!\033[0m ERROR: Unpacking $1 $2 package failed: not supported archive format"
	echo
	exit 1
fi
if ! tar -x${TAR_OPTION}f "$ITEM_HREF_NAME"; then
	echo -e "\033[31m!!!\033[0m ERROR: Unpacking $1 $2 package failed"
	echo
	exit 1
fi
if ! test -d "$1"; then
	ITEM_HREF_NAME_WITHOUT_EXT=`echo "$ITEM_HREF_NAME" | cut -d. -f1`
	if test -d "$ITEM_HREF_NAME_WITHOUT_EXT"; then
		mv "$ITEM_HREF_NAME_WITHOUT_EXT" "$1"
	else
		echo -e "\033[31m!!!\033[0m ERROR: Unpacking $1 $2 package failed: doesn't contain required directory"
		echo
		exit 1
	fi
fi

touch $1/.autodownloaded

if [ -d patches/$1 ]; then
	echo
	echo -e "\033[32m>>>\033[0m Patching $1 $2"
	echo
	for i in patches/$1/*; do
		if [ -f $i ]; then
			patch -f -p0 --dry-run -s < $i
			if [ $? -ne 0 ]; then
				echo -e "\033[31m!!!\033[0m ERROR: Patching module $1 with file $i failed"
				exit 1
			else
				patch -f -p0 < $i
			fi
		fi
	done
fi


echo -e "\033[32m>>>\033[0m $2 downloaded and unpacked successfully"
echo
