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

GROUP=$1
SVNUSER=$2
SVNPASS=$3
SVNURL=$4
SVNPORT=$5
MAKETYPE=$6

if [ $# -ne 6 ]; then
	echo "|---------------------------------------------------------------------------|"
	echo "|                                                                           |"
	echo "| IPK Make Script                                                           |"
	echo "|                                                                           |"
	echo '| use ./runipk.sh <group> <svnuser> <svnpass> <svnurl> <svnport> <maketype> |'
	echo "|                                                                           |"
	echo "| for group <dev|update>                                                    |"
	echo "| for svnuser <your>                                                        |"
	echo "| for svnpass <your>                                                        |"
	echo "| for svnurl <your>                                                         |"
	echo "| for svnport <your>                                                        |"
	echo "| for maketype <online|offline>                                             |"
	echo "|                                                                           |"
	echo "|---------------------------------------------------------------------------|"
	echo "|                                                          v1.0@dev-team    |"
	echo "|---------------------------------------------------------------------------|"
	exit 1
fi

if [ $GROUP = "dev" ] || [ $GROUP = "update" ];then
	echo "group=$GROUP"
else
	echo "group <dev|update>"
	exit 1
fi

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

rm -r "$HOME"/ipk/WWW/*.ipk > /dev/null 2>&1
rm -r "$HOME"/ipk/WWW/Packages* > /dev/null 2>&1
rm -r "$HOME"/ipk/WWW/PlugList > /dev/null 2>&1
rm -r "$HOME"/ipk/WWW/boot > /dev/null 2>&1
rm -r "$HOME"/ipk/*.ipk > /dev/null 2>&1
rm -r "$HOME"/ipk/Packages* > /dev/null 2>&1
rm -r "$HOME"/ipk/PlugList > /dev/null 2>&1
rm -r "$HOME"/ipk/boot > /dev/null 2>&1

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

. ./config/make-config

if [ $GROUP = "dev" ];then
	mkdir -p "$WWWLOCAL"/"$WWWMAIN"/"$IPKGCROSS_BETA"
	ln -s "$WWWLOCAL"/"$WWWMAIN"/"$IPKGCROSS_BETA" "$HOME"/ipk/WWW
	ln -s "$HOME"/ipk/source "$WWWLOCAL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/source 
elif [ $GROUP = "update" ];then
	mkdir -p "$WWWLOCAL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"
	ln -s "$WWWLOCAL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE" "$HOME"/ipk/WWW
	ln -s "$HOME"/ipk/source "$WWWLOCAL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/source 
fi

ls -1 "$HOME"/ipk/source > aaf-flashbeta.txt
LIST_LINE=`cat aaf-flashbeta.txt`
ALLOWED=`cat "$HOME"/ipk/aaf-flashbeta_allowed`


cd "$HOME"/ipk/WWW	
chmod -R 755 `find "$HOME"/ipk/source -type d -name "CONTROL"`
chmod -R 755 `find "$HOME"/ipk/source -type d -name "bin"`
chmod -R 755 `find "$HOME"/ipk/source -type d -name "sbin"`	
chmod -R 755 `find "$HOME"/ipk/source -type d -name "emu"`

# for externel files
#cp "$HOME"/WWW/civer/*.ipk ~/WWW

for ROUND in $ALLOWED; do
	for DIR in $LIST_LINE; do
		echo $DIR > $TMP
		if [ ! `grep "$ROUND" $TMP | wc -l` -eq 0 ]; then 
			echo ROUND $ROUND == $DIR DIR
			echo $DIR >> $NEXT_LIST
		fi	
	done
done

LIST=`cat $NEXT_LIST`

echo LIST: $LIST

rm -r `find "$HOME"/ipk -type d -name "*.svn"`

###
cd $HOMEDIR
echo make py var
ls -R -1 "$HOME"/ipk | grep "/" | sed 's/.$//' > tmp.txt
LINE=`cat tmp.txt`
for DIR in $LINE; do
	cd $HOMEDIR
	cd $DIR
	echo dir $DIR
	ls -1 *.py > $HOMEDIR/pylist.tmp
	PYLINE=`cat $HOMEDIR/pylist.tmp`
	for RPY in $PYLINE; do
		python2.6 -OO $HOMEDIR/source/mkpyc.py $RPY
		PYO=`echo "$RPY" | sed "s/.py$/.pyo/"`
		PYC=`echo "$RPY" | sed "s/.py$/.pyc/"`
		mv $PYO $PYC
		if [ $? -ne 0 ]; then
			echo "Fehler beim kompilieren $RPY"
		fi
	done
done
cd $HOMEDIR
###

rm -r `find "$HOME"/ipk/source -type d -name "*.py"`

for DIR in $LIST; do
	ipkg-build "$HOME"/ipk/source/"$DIR"
done

mkdir "$HOME"/ipk/WWW/boot
cp -a "$HOME"/ipk/bootvideos/* "$HOME"/ipk/WWW/boot
mv *.ipk "$HOME"/ipk/WWW/

if [ $GROUP = "dev" ];then
	cd "$WWWLOCAL"/"$WWWMAIN"/"$IPKGCROSS_BETA"
elif [ $GROUP = "update" ];then
	cd "$WWWLOCAL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"
fi

date=`date`
echo "make-index"
ipkg-make-index . > Packages
echo "pack Packages"
gzip Packages
ipkg-make-index . > Packages
echo "Here is the public AAF-Flash-PlugList" > PlugList
echo "" >> PlugList
cat Packages | grep Filename: | sed "s/Filename: enigma2-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

PACKAGESLIST=`ls -1 "$HOME"/ipk/WWW/Packages*`
IPKLIST=`ls -1 "$HOME"/ipk/WWW/*.ipk`
BOOTLIST=`ls -1 "$HOME"/ipk/WWW/boot`
pwd

if [ $GROUP = "update" ] && [ $MAKETYPE = "online" ];then
	for ROUND in $PACKAGESLIST; do
		wput "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$ROUND"
	done
	for ROUND in $IPKLIST; do
		wput "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$ROUND"
	done
	wput "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/PlugList
	cd boot
	for ROUND in $BOOTLIST; do
		wput "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/boot/"$ROUND"
	done
elif [ $GROUP = "dev" ] && [ $MAKETYPE = "online" ];then
	for ROUND in $PACKAGESLIST; do
		wput "$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/"$ROUND"
	done
	for ROUND in $IPKLIST; do
		wput "$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/"$ROUND"
	done
	wput "$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/PlugList
	cd boot
	for ROUND in $BOOTLIST; do
		wput "$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/boot/"$ROUND"
	done
fi

exit 0