#!/bin/sh

. /etc/init.d/tc-functions

checkroot

export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti"
export CPPFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

TODAY=`date +%Y/%m/%d`
PACKAGE="zeroinstall-injector"
PROGRAM="0desktop"
VERSION="0.46"
SEP="-"
MIRROR="http://downloads.sourceforge.net/project/zero-install/injector/${VERSION}/"
DESCRIPTION="a way to run software without an explicit installation step"
AUTHORS="Thomas Leonard"
HOMEPAGE="http://0install.net/"
LICENSE="Lesser GPL"
ME="jls_legalize (unsenepopiu at tin dot it)"
DEPS="gnupg.tcz \
libglade.tcz \
pygtk.tcz \
xdg-utils.tcz" 
BUILDDEPS="bzip2-dev \
compiletc.tcz \
gnupg.tcz \
pygtk-dev.tcz \
python-dev.tcz \
python_libxml2.tcz \
squashfs-tools-4.0.tcz"
FLAGS="--prefix=/usr/local"
DOCS1="usr/local/man"
#DOCS2="usr/local/share/gtk-doc"
TCUSER=`cat /etc/sysconfig/tcuser`
SRC="${PACKAGE}$SEP$VERSION.tar.bz2?use_mirror=igum"
SRCFILE="${PACKAGE}$SEP$VERSION.tar.bz2"
#MD5=${SRC}.md5
THISDIR=`pwd`
PKGDIR="${THISDIR}/${PACKAGE}"
SRCDIR="${PKGDIR}/${PACKAGE}${SEP}${VERSION}"
TCEDIR="$(cat /opt/.tce_dir)"
COPYING="COPYING"
#ICON=""
PROGRAMLABEL1="Add New Program"
PROGRAM1="0desktop"
PROGRAMLABEL2="Manage Programs"
PROGRAM2="0desktop --manage"

clean(){
	rm -rf ${THISDIR}/${PACKAGE}
}
environment(){
	for each in ${DEPS} ${BUILDDEPS}; do
		APPNAME=$(getbasefile "$each" 1)
		if [ ! -f /usr/local/tce.installed/"${APPNAME}" ]; then
			if [ ! -e ${TCEDIR}/optional/${each} ]; then
				sudo -u ${TCUSER} tce-load -w ${each}
			fi
			sudo -u ${TCUSER} tce-load -i ${TCEDIR}/optional/${each}
		fi
	done
	[ -d "${PKGDIR}" ] && rm -rf ${PKGDIR}
	mkdir -p ${PKGDIR}/tmp
	cd ${PKGDIR}
	wget ${MIRROR}${SRC} -O ${SRCFILE}
	#wget ${MIRROR}${MD5} -O ${MD5}
	#busybox md5sum -cs ${MD5}
	#if [ $? != 0 ];	then
	#	echo "md5 doesn't match"
	#	exit 1
	#fi 
	tar xjf ${SRCFILE}
}

buildit(){
   cd ${SRCDIR}
   #./configure ${FLAGS}
   #make
   touch /tmp/mark
   #make DESTDIR=${PKGDIR}/tmp install
   python setup.py install --root=${PKGDIR}/tmp
}

workit(){
	if [ "`ls -A ${PKGDIR}/tmp`" ]; then
		rm /tmp/mark
	else
		cd /
		find usr/ -newer /tmp/mark -not -type d > /tmp/${PACKAGE}.list
		tar czO -T /tmp/${PACKAGE}.list | tar xzf - -C ${PKGDIR}/tmp
		rm /tmp/${PACKAGE}.list
	fi

	cd ${PKGDIR}/tmp
	rm -rf ${DOCS1}
	#rm -rf ${DOCS2}
	
	mkdir -p usr/local/share/doc/License
	cp ${SRCDIR}/COPYING usr/local/share/doc/License/${PACKAGE}.txt

	find usr/ | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
	find usr/ | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null
	
	#locale
	mkdir -p ../locale/usr/local/share/locale
	mv usr/local/share/locale ../locale/usr/local/share
	
	##dev
	#for I in $(find `ls` -name *.h); do 
	#	export DIR=`dirname "$I"`; 
	#	[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
	#	mv "$I" ../dev/"$DIR"/; 
	#done
	#for I in $(find `ls` -name *.a); do 
	#	export DIR=`dirname "$I"`; 
	#	[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
	#	mv "$I" ../dev/"$DIR"/; 
	#done
	#for I in $(find `ls` -name *.la); do 
	#	export DIR=`dirname "$I"`; 
	#	[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
	#	mv "$I" ../dev/"$DIR"/; 
	#done
	#for I in $(find `ls` -name *.pc); do 
	#	export DIR=`dirname "$I"`; 
	#	[ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; 
	#	mv "$I" ../dev/"$DIR"/; 
	#done
	#cd ../dev/usr/local/include
	##dev clean	
	#rm -rf ${PKGDIR}/tmp/usr/local/include
	#rm -rf ${PKGDIR}/tmp/usr/local/lib/pkgconfig
	
	#mkdir -pm 775 usr/local/tce.installed
	#cat <<EOF> usr/local/tce.install/${PACKAGE}
##!/bin/sh

#EOF
#   chmod 775 usr/local/tce.installed/${PACKAGE}

	mkdir -pm 775 usr/local/tce.menu
	cat <<EOF> usr/local/tce.menu/${PACKAGE}
<JWM>
	<Menu label="${PACKAGE}">
		<Program label="${PROGRAMLABEL1}">${PROGRAM1}</Program>
		<Program label="${PROGRAMLABEL2}">${PROGRAM2}</Program>
	</Menu>
</JWM>
EOF
	chmod 644 usr/local/tce.menu/${PACKAGE}

	#mkdir -pm 775 usr/local/tce.icons
	#cp "${SRCDIR}/${ICON}" usr/local/tce.icons
	#cat <<EOF> usr/local/tce.icons/${PACKAGE}
#i:"${PACKAGE}.png"
#t:"${PACKAGE}"
#c:"${PROGRAM}"
#EOF
	#chmod 644 usr/local/tce.icons/*
	##dont clobber tc setup
	#chown -R root:staff usr/local/tce.*

	#package specific stuff
}

packageit(){
	cd ${PKGDIR}/tmp
	for dir in `ls -A`; do
		find ${dir} -not -type d | sort >> ../${PACKAGE}.tcz.list
	done
	mksquashfs . ../${PACKAGE}.tcz
	cd ${PKGDIR}
	md5sum ${PACKAGE}.tcz > ${PACKAGE}.tcz.md5.txt
	[ -f "${PACKAGE}.tcz.dep" ] && rm -f ${PACKAGE}.tcz.dep
	for each in ${DEPS}; do echo ${each} >> ${PACKAGE}.tcz.dep; done
	size=`du -h ${PACKAGE}.tcz | cut -f 1`
	cat <<EOF> ${PACKAGE}.tcz.info
Title:		${PACKAGE}.tcz
Description:	${DESCRIPTION}
Version:	${VERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	
		This extension is PPI compatible
Change-log:	2009/10/31 First Version (0.42.1)
		2010/03/15 Updated 2 0.45
Current: 	${TODAY} Updated 2 ${VERSION} 
EOF
	#locale
	cd ${PKGDIR}/locale
	for dir in `ls -A`; do
		find ${dir} -not -type d | sort >> ../${PACKAGE}-locale.tcz.list
	done
	mksquashfs . ../${PACKAGE}-locale.tcz
	cd ${PKGDIR}
	md5sum ${PACKAGE}-locale.tcz > ${PACKAGE}-locale.tcz.md5.txt
	echo ${PACKAGE}.tcz > ${PACKAGE}-locale.tcz.dep
	size=`du -h ${PACKAGE}-locale.tcz | cut -f 1`
	cat <<EOF> ${PACKAGE}-locale.tcz.info
Title:		${PACKAGE}-locale.tcz
Description:	${DESCRIPTION}. locale files
Version:	${VERSION}
Author:		${AUTHORS}
Original-site:	${HOMEPAGE}
Copying-policy:	${LICENSE}
Size:		${size}
Extension_by:	${ME}
Comments:	es and sv locale files
				
		This extension is PPI compatible
Change-log:	2009/10/31 First Version (0.42.1)
		2010/03/15 Updated 2 0.45
Current: 	${TODAY} Updated 2 ${VERSION} 
EOF
	##dev
	#cd ${PKGDIR}/dev
	#for dir in `ls -A`; do
	#  find ${dir} -not -type d | sort >> ../${PACKAGE}-dev.tcz.list
	#done

	#mksquashfs . ../${PACKAGE}-dev.tcz

	#cd ${PKGDIR}
	#md5sum ${PACKAGE}-dev.tcz > ${PACKAGE}-dev.tcz.md5.txt

	#size=`du -h ${PACKAGE}-dev.tcz | cut -f 1`

	#cat <<EOF> ${PACKAGE}-dev.tcz.info
#Title:		${PACKAGE}-dev.tcz
#Description:	${DESCRIPTION} dev files
#Version:		${VERSION}
#Author:		${AUTHORS}
#Original-site:	${HOMEPAGE}
#Copying-policy:${LICENSE}
#Size:		${size}
#Extension_by:	${ME}
#Comments:	dev files
				
			#This extension is PPI compatible
#This extension is PPI compatible
#Change-log:   
#Current:		${TODAY} 
#EOF
}
tarit(){	
	cd ${PKGDIR}
	tar	cvf ${PACKAGE}.tar \
		${PACKAGE}.tcz* \
		../${PACKAGE}.tcbuild
}

#here we go

clean
environment
buildit
workit
packageit
tarit
