#!/bin/sh

# stop all processes first
killall thttpd
killall dms
killall -SIGCONT snarf
killall snarf
killall -SIGCONT ctorrent
killall ctorrent
killall gdc
killall giftd
killall dmathined
killall mt-daapd
killall asus_gift

if [ "$1" = "stop" ]; then
	echo "stop rcex"
	nvram set apps_installed=0
	exit
fi

pool=`nvram get apps_pool`
share=`nvram get apps_share`
port=`nvram get apps_photo_port`
rundl=`nvram get apps_dl`
rundlg=`nvram get apps_dl_other`
runph=`nvram get apps_photo`
runphpage=`nvram get apps_photo_page`
rundms=`nvram get apps_dms`
rundaap=`nvram get apps_dms_itunes`
name=`nvram get machine_name`
mymac=`nvram get et0macaddr`
lang=`nvram get language`
btmin=`nvram get apps_dl_share_port_min`
btmax=`nvram get apps_dl_share_port_max`
nat=`nvram get wan_nat_x`
lan_ip=`nvram get lan_ipaddr`
lan_gw=`nvram get lan_gateway`
# recount apps_caps
# if (nvram_match("apps_dl", "1"))
#    st->Capability|=APPS_CAP_DOWNLOAD;
# if (nvram_match("apps_photo", "1"))
#    st->Capability|=APPS_CAP_WEBSERVER;
# if (nvram_match("apps_photo_page", "1"))
#    st->Capability|=APPS_CAP_PHOTOALBUM;
# if (nvram_match("apps_dms", "1"))
#    st->Capability|=APPS_CAP_DMS;
cap=0
if [ "${rundl}" = "1" ]; then
	cap=`expr $cap + 1`
fi
if [ "${runph}" = "1" ]; then
	cap=`expr $cap + 2`
fi
if [ "${runphpage}" = "1" ]; then
	cap=`expr $cap + 4`
fi
if [ "${rundms}" = "1" ]; then
	cap=`expr $cap + 8`
fi
nvram set apps_caps=$cap

EXLIB=/apps/lib
EXBIN=/apps/bin
EXUSR=/apps/usr
EXWWW=/apps/www
EXETC=/apps/etc

#rm -rf /shares/lib
#rm -rf /shares/bin
#rm -rf /shares/usr
#rm -rf /shares/wwwapps
#rm -rf /shares/etc

#ln -s $EXLIB /shares/lib
#ln -s $EXBIN /shares/bin
#ln -s $EXUSR /shares/usr
#ln -s $EXWWW /shares/wwwapps
#ln -s $EXETC /shares/etc

export PATH=$PATH:/shares/bin:/shares/usr/gift-nasoc/bin
export LD_LIBRARY_PATH=/shares/lib:/shares/usr/gift-nasoc/lib

if [ "${runph}" = "1" ]; then
	if [ "${runphpage}" = "1" ]; then
		cd /shares/${pool}/${share}/web
		#rm -f index.html
		rm -rf Layout
		if [ "${lang}" = "Traditional Chinese" ]; then
			#ln -s index_Taiwan.html index.html
			ln -s Layout_Taiwan Layout
		elif [ "${lang}" = "Japanese" ]; then
			#ln -s index_English.html index.html
			ln -s Layout_Japan Layout
		else
			#ln -s index_English.html index.html
			ln -s Layout_English Layout
		fi
		thttpd -d /shares/${pool}/${share}/web -c "**" -p ${port} -u root -nos
	else
		thttpd -d /shares/${pool}/${share}/Photo -c "**" -p ${port} -u root -nos
	fi
fi

if [ "${rundms}" = "1" ]; then
	
	dms /shares/DMSRoot ${name} ${mymac} &

	if [ "${rundaap}" = "1" ]; then
		echo "web_root /tmp/cache-mt-daapd" > /tmp/mt-daapd.conf
		echo "port 3689" >> /tmp/mt-daapd.conf
		echo "admin_pw mt-daapd" >> /tmp/mt-daapd.conf
		echo "db_dir /tmp/cache-mt-daapd" >> /tmp/mt-daapd.conf
		echo "mp3_dir /shares/DMSRoot" >> /tmp/mt-daapd.conf
		echo "servername ${name}" >> /tmp/mt-daapd.conf
		echo "runas root" >> /tmp/mt-daapd.conf
		echo "rescan_interval 60" >> /tmp/mt-daapd.conf
		echo "extensions .mp3,.m4a,.m4p" >> /tmp/mt-daapd.conf
		echo "musiclink http://${lan_ip}:${port}/Music" >> /tmp/mt-daapd.conf
		echo "Feedfile /shares/${pool}/${share}/web/rss.xml" >> /tmp/mt-daapd.conf
		echo "Tmpfile /shares/${pool}/${share}/web/rss.tmp1" >> /tmp/mt-daapd.conf	
		echo "Keymark \$" >> /tmp/mt-daapd.conf
		rm -rf /tmp/cache-mt-daapd
		rm -rf /shares/${pool}/${share}/web/rss.xml
		mt-daapd -c /tmp/mt-daapd.conf -s ${name} &
	fi
fi

if [ "${rundl}" = "1" ]; then	
	cd ${EXBIN}
	echo "${btmin}:${btmax}" > /shares/${pool}/${share}/Download/.prange	
	./dmathined /shares/${pool}/${share} 2&> /dev/null
	if [ "$rundlg" = "1" ]; then
		cp -f /shares/etc/.giFT/giftd.conf.plugin /shares/etc/.giFT/giftd.conf
		rungshell prepare
		giftd --home-dir=/shares/${pool}/${share}/Download --local-dir=/shares/etc/.giFT --ex=/shares/${pool}/${share} --data-dir=/shares/etc/giFT --plugin-dir=/shares/usr/gift-nasoc/lib/giFT &
		sleep 1 
		rungshell start /shares/${pool}/${share}/Download 1> /dev/null
	else
		cp -f /shares/etc/.giFT/giftd.conf.noplugin /shares/etc/.giFT/giftd.conf
		rungshell prepare
		giftd --home-dir=/shares/${pool}/${share}/Download --local-dir=/shares/etc/.giFT --ex=/shares/${pool}/${share} --data-dir=/shares/etc/giFT --plugin-dir=/shares/usr/gift-nasoc/lib/giFT &
	fi
fi

nvram set apps_installed=1

if [ "$nat" = "0" ]; then
	route del default
	route add default gw $lan_gw
fi

#/apps/bin/utelnetd -i br0 &

# Run rc.local.  Prefer the one out of reach by the file
# sharing applications.  If not available, look in the web
# folder on the internal HDD. 

if [ -x /shares/${pool}/rc.local ]; then
 /shares/${pool}/rc.local $1 &
else
 if [ -e /shares/${pool}/${share}/web/rc.local ]; then
  /bin/sh /shares/${pool}/{share}/web/rc.local $1 &
 else
  echo Found no rc.local to run!
 fi
fi
