#!/bin/sh
HOMEDIR=`pwd`
TMP=.tmp
NEXT_LIST=.tmp2

GROUP=$1
SVNUSER=$2
SVNPASS=$3
SVNURL=$4
MAKETYPE=$5
CPUTYPE=$6
SWTYPE=$7

if [ ! -e "$HOMEDIR"/.firstrun ]; then
	echo "[make-ipk] first run remove old ipkg-build and ipkg-make-index links"
	sudo rm /bin/ipkg-build
	sudo rm /sbin/ipkg-build
	sudo rm /bin/ipkg-make-index
	sudo rm /sbin/ipkg-make-index
	touch "$HOMEDIR"/.firstrun 
fi

if [ `which ipkg-build | wc -l` -eq 0 ]; then
	sudo ln -s $HOMEDIR/ipkg-utils-050831/ipkg-build /bin
fi
if [ `which ipkg-make-index | wc -l` -eq 0 ]; then
	sudo ln -s $HOMEDIR/ipkg-utils-050831/ipkg-make-index /bin
fi
if [ `which gzip | wc -l` -eq 0 ]; then
	echo "[make-ipk] install gzip"
	echo "[make-ipk] apt-get install gzip"
	exit
elif [ `which python2.6 | wc -l` -eq 0 ]; then
	echo "[make-ipk] install python2.6 | search python2.6_2.6.1-1_i386.deb"
	exit
elif [ `which wput | wc -l` -eq 0 ]; then
	echo "[make-ipk] install wput v0.6.2"
	echo "[make-ipk] apt-get install wput"
	exit
fi

if [ "$MAKETYPE" = "online" ];then
	WPUTCHECK=`wput --version | tr " " "\n" | tail -n1 | sed 's/\.//' | sed 's/\.//'`
	echo WPUTCHECK $WPUTCHECK
	if [ "$WPUTCHECK" -gt "061" ]; then
		echo "[make-ipk] wput0.6.2 ok"
	else
		echo "[make-ipk] install wput0.6.2"
		echo "[make-ipk] cd /src"
		echo "[make-ipk] wget ftp://ftp.sunfreeware.com/pub/freeware/SOURCES/wput-0.6.2.tar.gz"
		echo "[make-ipk] tar -zxvf wput-0.6.2.tar.gz"
		echo "[make-ipk] cd wput-0.6.2"
		echo "[make-ipk] ./configure"
		echo "[make-ipk] make"
		echo "[make-ipk] make install"
		exit
	fi
fi

if [ $# -ne 7 ]; then
	echo "|---------------------------------------------------------------------------------------------|"
	echo "|                                                                                             |"
	echo "| IPK Make Script                                                                             |"
	echo "|                                                                                             |"
	echo '| use ./make-ipk <group> <svnuser> <svnpass> <svnurl> <maketype> <cputype> <swtype>           |'
	echo "|                                                                                             |"
	echo "| for group <dev|update|secret|atemio|feeds>                                                  |"
	echo "| for svnuser <your>                                                                          |"
	echo "| for svnpass <your>                                                                          |"
	echo "| for svnurl <your>                                                                           |"
	echo "| for maketype <online|offline|onlinebeta>                                                    |"
	echo "| for cputype <sh4|mipsel>                                                                    |"
	echo "| for swtype <enigma2|neutrino|titan>                                                         |"
	echo "|                                                                                             |"
	echo "|---------------------------------------------------------------------------------------------|"
	echo "|                                                                            v2.1@dev-team    |"
	echo "|---------------------------------------------------------------------------------------------|"
	exit 1
fi

if [ $GROUP = "dev" ] || [ $GROUP = "update" ] || [ $GROUP = "secret" ] || [ $GROUP = "atemio" ] || [ $CPUTYPE = "feeds" ];then
	echo "[make-ipk] group=$GROUP"
else
	echo "[make-ipk] group <dev|update|secret|atemio|feeds>"
	exit 1
fi

if [ $MAKETYPE = "online" ] || [ $MAKETYPE = "offline" ] || [ $MAKETYPE = "onlinebeta" ];then
	echo "[make-ipk] maketype=$MAKETYPE"
else
	echo "[make-ipk] maketype <online|offline|onlinebeta>"
	exit 1
fi

if [ $CPUTYPE = "sh4" ] || [ $CPUTYPE = "mipsel" ];then
	echo "[make-ipk] cputype=$CPUTYPE"
else
	echo "[make-ipk] cputype <sh4|mipsel>"
	exit 1
fi

if [ $SWTYPE = "enigma2" ] || [ $SWTYPE = "neutrino" ] || [ $SWTYPE = "titan" ];then
	echo "[make-ipk] swtype=$SWTYPE"
else
	echo "[make-ipk] swtype <enigma2|neutrino|titan>"
	exit 1
fi

rm -rf "$HOMEDIR"/BUILD
rm -rf "$HOMEDIR"/BUILDRELEASE

rm -rf "$HOMEDIR"/preview
rm -rf "$HOMEDIR"/config
rm -rf "$HOMEDIR"/scripts

mkdir -p "$HOMEDIR"/BUILD
mkdir -p "$HOMEDIR"/BUILDRELEASE

svn co --username $SVNUSER --password $SVNPASS http://"$SVNURL"/svn/image/scripts $HOMEDIR/scripts
svn co --username $SVNUSER --password $SVNPASS http://"$SVNURL"/svn/image/config $HOMEDIR/config

. ./config/make-config

if [ $GROUP = "dev" ];then
	WWWMAIN="beta"
elif [ $GROUP = "secret" ]; then
	WWWMAIN="ipk"
elif [ $GROUP = "atemio" ]; then
	WWWMAIN="atemio"
else
	WWWMAIN="public"
fi

WWWPUBLIC="ipk"

ls -1 "$HOMEDIR"/source > aaf-flashbeta.txt
ls -1 "$HOMEDIR"/source."$CPUTYPE" >> aaf-flashbeta.txt

LIST_LINE=`cat aaf-flashbeta.txt`
if [ $GROUP = "secret" ]; then
	ALLOWED=`cat "$HOMEDIR"/trustlist_secret_"$CPUTYPE"_"$SWTYPE"`
elif [ $GROUP = "atemio" ]; then
	ALLOWED=`cat "$HOMEDIR"/trustlist_atemio_"$CPUTYPE"_"$SWTYPE"`
else
	ALLOWED=`cat "$HOMEDIR"/trustlist_allowed_"$CPUTYPE"_"$SWTYPE"`
fi

if [ $GROUP != "feeds" ];then
	for DIR in $ALLOWED; do
		echo cp "$DIR"_*
		cp -a "$HOMEDIR"/source/"$DIR"_* "$HOMEDIR"/BUILD
	done

	for DIR in $ALLOWED; do
		echo cp "$DIR"_*
		cp -a "$HOMEDIR"/source."$CPUTYPE"/"$DIR"_* "$HOMEDIR"/BUILD
	done
else
	for DIR in $ALLOWED; do
		echo cp "$DIR"_*
		cp -a "$HOMEDIR"/source.feeds/"$DIR"_* "$HOMEDIR"/BUILD
	done
fi

if [ $SWTYPE = "titan" ] && [ $SVNUSER = "aafsvn" ];then
#	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/mc/* "$HOMEDIR"/BUILD/titanplayers_mc/var/usr/local/share/titan/plugins/mc
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/networkbrowser/* "$HOMEDIR"/BUILD/titannetwork_networkbrowser/var/usr/local/share/titan/plugins/networkbrowser
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/keylock/* "$HOMEDIR"/BUILD/titantools_keylock/var/usr/local/share/titan/plugins/keylock
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/browser/* "$HOMEDIR"/BUILD/titanbrowser_netsurf/var/usr/local/share/titan/plugins/browser
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/imdb/* "$HOMEDIR"/BUILD/titaninfos_imdb/var/usr/local/share/titan/plugins/imdb
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/permtime/* "$HOMEDIR"/BUILD/titantools_PermanentTime/var/usr/local/share/titan/plugins/permtime
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/lcdpearl1/* "$HOMEDIR"/BUILD/titanswaptools_lcdpearl1/var/swap/titanplugins/lcdpearl1
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/callmonitor1/* "$HOMEDIR"/BUILD/titaninfos_callmonitor/var/usr/local/share/titan/plugins/callmonitor1
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/callmonitor1/* "$HOMEDIR"/BUILD/titanswaptools_callmonitor/var/swap/titanplugins/callmonitor1
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/stopifnotused/* "$HOMEDIR"/BUILD/titantools_stopifnotused/var/usr/local/share/titan/plugins/stopifnotused
	cp -a $HOME/flashimg/BUILD/titan/var/usr/local/share/titan/plugins/tithek/* "$HOMEDIR"/BUILD/titanplayers_tithek/var/usr/local/share/titan/plugins/tithek

#	# we need the real src in plugins
#	rm -rf "$HOMEDIR"/BUILD/titaninfos_callmonitor
#	# disable for release
#	rm -rf "$HOMEDIR"/BUILD/titanbrowser_netsurf
	# disable for release
#	rm -rf "$HOMEDIR"/BUILD/titaninfos_imdb
	# is now in image
#	rm -rf "$HOMEDIR"/BUILD/titanplayers_mc
	# disable for release
	#rm -rf "$HOMEDIR"/BUILD/titanswaptools_lcdpearl1
fi

if [ $CPUTYPE = "mipsel" ];then
	rm -r "$HOMEDIR"/BUILD/*/CONTROL/pre*
	sed -i 's/sh4/mipsel/g' "$HOMEDIR"/BUILD/*/CONTROL/control
fi

#cp -a "$HOMEDIR"/bootvideos "$HOMEDIR"/BUILDRELEASE/boot
cd "$HOMEDIR"/BUILD	

# titan work start
rm -rf browsers_picasa
rm -rf browsers_elektro_1_0
rm -rf browsers_werbezapper_1_0
rm -rf browsers_zaphistorybrowser_1_2
rm -rf swapnetwork_webif
rm -rf swapnetwork_wlan_300
rm -rf swapnetwork_wlan_400
# titan work done

ls -1 "$HOMEDIR"/BUILD > $NEXT_LIST

LIST=`cat $NEXT_LIST`
echo LIST: $LIST

rm -rf `find "$HOMEDIR"/BUILD -type d -name "*.svn"`
sed -i "s/Package: enigma2-plugin-/Package: $SWTYPE-plugin-/g" "$HOMEDIR"/BUILD/*/CONTROL/control

echo "[make-ipk] set executable Folder rights 755 to CONTROL bin sbin emu"
chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "CONTROL"` > /dev/null 2>&1
chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "bin"` > /dev/null 2>&1
chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "sbin"` > /dev/null 2>&1	
chmod -R 755 `find "$HOMEDIR"/BUILD -type d -name "emu"` > /dev/null 2>&1

###################  SHRINK PYTHON FILES  #########################

"$HOMEDIR"/scripts/kf-pyshrink.sh ./ "$HOMEDIR"/BUILD "$PYTHONVER" "$SKIPPEDSHRINK"

###
#cd $HOMEDIR
echo make py var
ls -R -1 "$HOMEDIR"/BUILD | grep "/" | sed 's/.$//' > tmp.txt
LINE=`cat tmp.txt`
for DIR in $LINE; do
	cd $HOMEDIR
	cd $DIR
	echo "[make-ipk] dir $DIR"
	ls -1 *.py > "$HOMEDIR"/pylist.tmp
	PYLINE=`cat "$HOMEDIR"/pylist.tmp`
	for RPY in $PYLINE; do
		python2.6 -OO "$HOMEDIR"/scripts/mkpyc.py $RPY
		PYO=`echo "$RPY" | sed "s/.py$/.pyo/"`
		PYC=`echo "$RPY" | sed "s/.py$/.pyc/"`
		if [ $CPUTYPE = "sh4" ];then
			mv $PYO $PYC
		elif [ $CPUTYPE = "mipsel" ];then
			mv $PYC $PYO
		fi
		if [ $? -ne 0 ]; then
			echo "[make-ipk] Fehler beim kompilieren $RPY"
		fi
	done
done
cd $HOMEDIR
###
rm "$HOMEDIR"/pylist.tmp
rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.py" -print`
if [ $CPUTYPE = "sh4" ];then
	rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.pyo" -print`
elif [ $CPUTYPE = "mipsel" ];then
	rm -rf `find "$HOMEDIR"/BUILD -type f -name "*.pyc" -print`
fi
rm -rf "$HOMEDIR"/preview
mkdir "$HOMEDIR"/preview

###################  SHRINK PNG FILES  #########################

PNGFILES=`find "$HOMEDIR"/BUILD -type f -name "*.png" -print`

for DIR in $PNGFILES; do
	echo "[make-ipk] PNG: $DIR"
	/usr/bin/advpng -4 -z $DIR #> /dev/null 2>&1
#	/usr/bin/advpng -4 -z $DIR #> /dev/null 2>&1
done

###################  STRIPPED ALL FILES  #########################
if [ $CPUTYPE = "sh4" ];then
	FILEALL=`find "$HOMEDIR"/BUILD -name "*" -print`

	if ( test -f ../flashimg/BUILDGIT/checkout_"$STM"/tdt/tufsbox/devkit/sh4/bin/sh4-linux-strip ); then
		echo ""
		echo "[make-ipk] Files strippen"
		echo ""
		for FILE in $FILEALL
		do
			echo $FILE | grep ".ko" >/dev/null 2>&1
			if [ $? -eq 0 ]; then param="--strip-unneeded --remove-section=.comment"; else param="-s --remove-section=.comment"; fi
			../flashimg/BUILDGIT/checkout_"$STM"/tdt/tufsbox/devkit/sh4/bin/sh4-linux-strip $param $FILE > /dev/null 2>&1
			if [ $? -eq 0 ]; then
				echo "[make-ipk] Strippe: $FILE"
			fi
		done
	else
		echo ""
		echo "[make-ipk] Files strippen konnte nicht durchgefuehrt werden, da sh4-linux-strip fehlt."
	fi
fi

for DIR in $LIST; do
	echo "[make-ipk] $DIR"
	NAME=`cat "$HOMEDIR"/BUILD/"$DIR"/CONTROL/control | grep Package: | tr " " "\n" | tr "-" "\n" | tail -n 1 | cut -d . -f1 | head -n1`
#	ARCH=`cat "$HOMEDIR"/BUILD/"$DIR"/CONTROL/control | grep Architecture: | tr " " "\n" | tail -n 1`
#	cp "$HOMEDIR"/BUILD/"$DIR"/preview/prev.png "$HOMEDIR"/preview/enigma2-pluginpreview-"$NAME"_"$ARCH".ipk.png
	cp "$HOMEDIR"/BUILD/"$DIR"/preview/prev.png "$HOMEDIR"/preview/"$SWTYPE"-pluginpreview-"$NAME".png
	rm -r "$HOMEDIR"/BUILD/"$DIR"/preview
done


cd "$HOMEDIR"/BUILDRELEASE

for DIR in $LIST; do
	ipkg-build "$HOMEDIR"/BUILD/"$DIR"
done

date=`date`
echo "[make-ipk] make-index"
rm Packages*
 
ipkg-make-index -l Packages.filelist -p Packages -v .

if [ $GROUP = "secret" ]; then
	echo "Here is the secret AAF-Flash-PlugList" > PlugList
elif [ $GROUP = "beta" ]; then
	echo "Here is the beta AAF-Flash-PlugList" > PlugList
else
	echo "Here is the public AAF-Flash-PlugList" > PlugList
fi

echo "" >> PlugList
cat Packages | grep Filename: | sed "s/Filename: $SWTYPE-plugin-//" | sed "s/.ipk//" | sed "s/_sh4//" | sed "s/_/ V/" >> PlugList
rm test.txt
echo "" >> PlugList
echo "mfg AAF-TEAM @ $date" >> PlugList
echo "done"

rm .tmp*
rm tmprc

cd "$HOMEDIR"
tar czvf Packages.preview.tar.gz ./preview

mv "$HOMEDIR"/Packages.preview.tar.gz "$HOMEDIR"/BUILDRELEASE

cd "$HOMEDIR"/BUILDRELEASE

FULLLIST=`ls -1`
PACKAGESLIST=`ls -1 Packages*`
IPKLIST=`ls -1 *.ipk`

if [ $GROUP = "update" ] && [ "$SVNUSER" = "aafsvn" ] && [ "$SWTYPE" = "titan" ];then
	COUNT=`cat "$HOMEDIR"/.count`
	IPKGCROSS_RELEASE=atemio510-rev$COUNT
	WWWMAIN=$WWWATEMIOSECRET
elif [ $GROUP = "secret" ] && [ "$SVNUSER" = "aafsvn" ] && [ "$SWTYPE" = "titan" ];then
	COUNT=`cat "$HOMEDIR"/.count`
	IPKGCROSS_RELEASE=atemio510-rev$COUNT
	WWWMAIN=$WWWATEMIOSECRET
fi

if [ $GROUP = "update" ] && [ "$SVNUSER" = "aafsvn" ];then
	rm -rf "$HOMEDIR"/BUILDRELEASE-UPDATE/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE
	mkdir -p "$HOMEDIR"/BUILDRELEASE-UPDATE/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE		

	for file in $FULLLIST; do
		if [ -e "$file" ]; then
			wputcmd="$file "$HOMEDIR"/BUILDRELEASE-UPDATE/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE/$file"
			echo "[make-ipk] move: $wputcmd"
			mv -f $wputcmd
		fi
	done
elif [ $GROUP = "dev" ] && [ "$SVNUSER" = "aafsvn" ];then
	rm -rf "$HOMEDIR"/BUILDRELEASE-BETA/$IPKGCROSS_BETA/$CPUTYPE/$SWTYPE
	mkdir -p "$HOMEDIR"/BUILDRELEASE-BETA/$IPKGCROSS_BETA/$CPUTYPE/$SWTYPE		
	
	for file in $FULLLIST; do
		if [ -e "$file" ]; then
			wputcmd="$file "$HOMEDIR"/BUILDRELEASE-BETA/$IPKGCROSS_BETA/$CPUTYPE/$SWTYPE/$file"
			echo "[make-ipk] move: $wputcmd"
			mv -f $wputcmd
		fi
	done
elif [ $GROUP = "secret" ] && [ "$SVNUSER" = "aafsvn" ] && [ $MAKETYPE = "online" ] && [ "$SWTYPE" = "titan" ];then
	for ROUND in $PACKAGESLIST; do
		wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE/$ROUND"
		echo "[make-ipk] upload: $wputbin $wputcmd"
		$wputbin $wputcmd
	done
	for ROUND in $IPKLIST; do
		wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE/$ROUND"
		echo "[make-ipk] upload: $wputbin $wputcmd"
		$wputbin $wputcmd
	done

	wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE/PlugList"
	echo "[make-ipk] upload: $wputbin $wputcmd"
	$wputbin $wputcmd

	wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$IPKGCROSS_RELEASE/$CPUTYPE/$SWTYPE/Packages.preview.tar.gz"
	echo "[make-ipk] upload: $wputbin $wputcmd"
	$wputbin $wputcmd
elif [ $GROUP = "secret" ] && [ "$SVNUSER" = "aafsvn" ] && [ $MAKETYPE = "online" ];then
	for ROUND in $PACKAGESLIST; do
		wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$CPUTYPE/$SWTYPE/$ROUND"
		echo "[make-ipk] upload: $wputbin $wputcmd"
		$wputbin $wputcmd
	done
	for ROUND in $IPKLIST; do
		wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$CPUTYPE/$SWTYPE/$ROUND"
		echo "[make-ipk] upload: $wputbin $wputcmd"
		$wputbin $wputcmd
	done

	wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$CPUTYPE/$SWTYPE/PlugList"
	echo "[make-ipk] upload: $wputbin $wputcmd"
	$wputbin $wputcmd

	wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$CPUTYPE/$SWTYPE/Packages.preview.tar.gz"
	echo "[make-ipk] upload: $wputbin $wputcmd"
	$wputbin $wputcmd
elif [ $GROUP = "atemio" ] && [ $MAKETYPE = "online" ];then
	for ROUND in $PACKAGESLIST; do
		wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$ROUND"
		echo "[make-ipk] upload: $wputbin $wputcmd"
		$wputbin $wputcmd
	done
	for ROUND in $IPKLIST; do
		wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/$ROUND"
		echo "[make-ipk] upload: $wputbin $wputcmd"
		$wputbin $wputcmd
	done

	wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/PlugList"
	echo "[make-ipk] upload: $wputbin $wputcmd"
	$wputbin $wputcmd

	wputcmd="$SECRETRELEASEUPDATEURL/$WWWMAIN/Packages.preview.tar.gz"
	echo "[make-ipk] upload: $wputbin $wputcmd"
	$wputbin $wputcmd
fi

echo "[make-ipk] done"
exit 0
