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

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

if [ `which ipkg-build | wc -l` -eq 0 ]; then
	ln -s $HOMEDIR/ipkg-utils-050831/ipkg-build /sbin
	ln -s $HOMEDIR/ipkg-utils-050831/ipkg-build /bin
elif [ `which ipkg-make-index | wc -l` -eq 0 ]; then
	ln -s $HOMEDIR/ipkg-utils-050831/ipkg-make-index /sbin
	ln -s $HOMEDIR/ipkg-utils-050831/ipkg-make-index /bin
elif [ `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-flash] 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 6 ]; then
	echo "|---------------------------------------------------------------------------|"
	echo "|                                                                           |"
	echo "| IPK Make Script                                                           |"
	echo "|                                                                           |"
	echo '| use ./make-ipk <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/BUILD > /dev/null 2>&1
rm -r "$HOME"/ipk/BUILDRELEASE > /dev/null 2>&1

mkdir -p "$HOME"/ipk/BUILD
mkdir -p "$HOME"/ipk/BUILDRELEASE

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

cp -a "$HOME"/ipk/source/* "$HOME"/ipk/BUILD
ls -1 "$HOME"/ipk/BUILD > aaf-flashbeta.txt
cp -a "$HOME"/ipk/bootvideos "$HOME"/ipk/BUILDRELEASE/boot

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

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

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/BUILD -type d -name "*.svn"`

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

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

###
cd $HOMEDIR
echo make py var
ls -R -1 "$HOME"/ipk/BUILD | grep "/" | sed 's/.$//' > tmp.txt
LINE=`cat tmp.txt`
for DIR in $LINE; do
	cd $HOMEDIR
	cd $DIR
	echo dir $DIR
	ls -1 *.py > "$HOME"/ipk/pylist.tmp
	PYLINE=`cat "$HOME"/ipk/pylist.tmp`
	for RPY in $PYLINE; do
		python2.6 -OO "$HOME"/ipk/scripts/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 "$HOME"/ipk/pylist.tmp
rm -r `find "$HOME"/ipk/BUILD -type f -name "*.py" -print`
rm -r `find "$HOME"/ipk/BUILD -type f -name "*.po" -print`

rm -r "$HOME"/ipk/preview
mkdir "$HOME"/ipk/preview

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

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

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

###################  STRIPPED ALL FILES  #########################

FILEALL=`find "$HOME"/ipk/BUILD -name "*" -print`

if ( test -f "$HOME"/ipk/scripts/sh4-linux-strip ); then
	echo ""
	echo "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
		"$HOME"/ipk/scripts/sh4-linux-strip $param $FILE > /dev/null 2>&1
		if [ $? -eq 0 ]; then
			echo "Strippe: $FILE"
		fi
	done
else
	echo ""
	echo "Files strippen konnte nicht durchgefuehrt werden, da sh4-linux-strip fehlt."
fi


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


cd "$HOME"/ipk/BUILDRELEASE

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

date=`date`
echo "make-index"
rm Packages*

ipkg-make-index -l Packages.filelist -p Packages -v .

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

cd "$HOME"/ipk/
tar czvf Packages.preview.tar.gz ./preview

mv "$HOME"/ipk/Packages.preview.tar.gz "$HOME"/ipk/BUILDRELEASE

cd "$HOME"/ipk/BUILDRELEASE

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

if [ $GROUP = "update" ] && [ $MAKETYPE = "online" ];then
	for ROUND in $PACKAGESLIST; do
		wput -u "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$ROUND"
	done
	for ROUND in $IPKLIST; do
		wput -u "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/"$ROUND"
	done
	wput "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/PlugList
	wput "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/Packages.preview.tar.gz
	cd boot
	BOOTLIST=`ls -1`
	for ROUND in $BOOTLIST; do
		wput -u "$PUBLICRELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_RELEASE"/boot/"$ROUND"
	done
elif [ $GROUP = "dev" ] && [ $MAKETYPE = "online" ];then
	BTIME=`date +"%Y.%m.%d_%H.%M.%S"`
	echo quote USER $URLBETAUSER >"$HOME"/ipk/ftp.txt
	echo quote PASS $URLBETAPASS >>"$HOME"/ipk/ftp.txt
#	echo cd "$WWWMAIN"/"$IPKGCROSS_BETA" >>"$HOME"/ipk/ftp.txt
#        echo cd "$WWWMAIN" >>"$HOME"/ipk//ftp.txt
	echo del "$WWWMAIN"/"$IPKGCROSS_BETA"/Packages >>"$HOME"/ipk/ftp.txt
	echo del "$WWWMAIN"/"$IPKGCROSS_BETA"/Packages.filelist >>"$HOME"/ipk/ftp.txt
	echo del "$WWWMAIN"/"$IPKGCROSS_BETA"/Packages.gz >>"$HOME"/ipk/ftp.txt
	echo del "$WWWMAIN"/"$IPKGCROSS_BETA"/PlugList >>"$HOME"/ipk/ftp.txt
	echo del "$WWWMAIN"/"$IPKGCROSS_BETA"/Packages.preview.tar.gz >>"$HOME"/ipk/ftp.txt

#	echo rename aaf-flash-beta aaf-flash-beta_old_"$URLBETAUSER"_"$BTIME" >>"$HOME"/ipk/ftp.txt
	echo quit >>"$HOME"/ipk/ftp.txt
	ftp -n "$URLBETA" < "$HOME"/ipk/ftp.txt 

	sleep 5
	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
	wput "$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/Packages.preview.tar.gz

	cd boot
	BOOTLIST=`ls -1`
	for ROUND in $BOOTLIST; do
		wput -u "$BETARELEASEUPDATEURL"/"$WWWMAIN"/"$IPKGCROSS_BETA"/boot/"$ROUND"
	done
fi

echo "[make-ipk] done"

exit 0