#!/bin/sh

if [ x"$XTVDIR" = x"" ]
then
	echo Environment variable XTVDIR should be set to the root of the xtv sources
	exit 1
fi

date=`date "+%m%d%Y"`

TMP=/tmp2

root=$XTVDIR/tmp

app=$root/XTelevision.app
prefs=$app/XTelevisionPreferences.app
viewer=$app/XTelevisionViewer.app
kext=$app/Bt8xx.kext
plugins=$viewer/Contents/plugins
resources=$app/Contents/Resources

PKGROOT=$TMP/XTelevision.pkg
PKGDIR=$PKGROOT/Contents/Resources

build=$XTVDIR/build

xtv=XTelevision



dmg=$TMP/$xtv-$date.dmg

sectoadd=4000

function copy()
{
    #echo copy $1 $2

    srcdir=`dirname $1`
    dstdir=$2
    src=`basename $1`

    #echo copy $src from $srcdir to $dstdir

    ( cd $srcdir; tar cf - $src ) | ( cd $dstdir; tar xf - )
}

function make_release()
{
	echo building release

	cd $XTVDIR

	rm -rf $root/*

	mkdir -p $root
	mkdir -p $app

	( cd $build; tar cf - XTelevision.app             ) | ( cd $root;  tar xf - )
	( cd $build; tar cf - XTelevisionViewer.app       ) | ( cd $app;   tar xf - )
	( cd $build; tar cf - XTelevisionPreferences.app  ) | ( cd $app;   tar xf - )
	( cd $build; tar cf - Bt8xx.kext                  ) | ( cd $app;   tar xf - )

	mkdir -p $plugins

	cp "$build/Bt8xx Framework.framework/Bt8xx Framework"    $plugins
	cp "$build/IOFramework.framework/IOFramework"            $plugins
	cp "$build/IOModules.framework/IOModules"                $plugins
	cp "$build/ToolkitFramework.framework/ToolkitFramework"  $plugins

 	copy "$XTVDIR/doc/ReadMe.rtfd"                             $resources
 	copy "$XTVDIR/doc/Welcome.rtfd"                            $resources

	rm -rf $root/Resources
	mkdir -p $root/Resources

 	copy "$XTVDIR/doc/ReadMe.rtfd"                             $root/Resources
 	copy "$XTVDIR/doc/Welcome.rtfd"                            $root/Resources

       #cp   "$XTVDIR/util/XTelevision.pre_install"                $root/Resources
	cp   "$XTVDIR/util/XTelevision.post_install"               $root/Resources
	cp   "$XTVDIR/util/XTelevision.post_upgrade"               $root/Resources

	rm -rf $PKGDIR
	mkdir -p $PKGDIR

 	copy "$XTVDIR/doc/ReadMe.rtfd"                             $PKGDIR

 	copy "$XTVDIR/doc/Welcome.rtfd"                            $PKGDIR
       #cp   "$XTVDIR/util/XTelevision.pre_install"                $PKGDIR
	cp   "$XTVDIR/util/XTelevision.post_install"               $PKGDIR
	cp   "$XTVDIR/util/XTelevision.post_upgrade"               $PKGDIR

	mkbom $root $PKGDIR/XTelevision.bom

	( cd $root; pax -w -f $PKGDIR/XTelevision.pax . )

	NumFiles=`pax -f $PKGDIR/XTelevision.pax | wc -l`
	InstalledSize=`du -k $PKGDIR/XTelevision.pax | cut -f 1`
	gzip $PKGDIR/XTelevision.pax
	CompressedSize=`du -k $PKGDIR/XTelevision.pax.gz | cut -f 1`

	echo "NumFiles $NumFiles"             >  $PKGDIR/XTelevision.sizes
	echo "InstalledSize $InstalledSize"   >> $PKGDIR/XTelevision.sizes
	echo "CompressedSize $CompressedSize" >> $PKGDIR/XTelevision.sizes

	echo "Title XTelevision"                    >  $PKGDIR/XTelevision.info
	echo "Version 0.0.6"                       >>  $PKGDIR/XTelevision.info
	echo "Description XTelevision"             >>  $PKGDIR/XTelevision.info
	echo "DefaultLocation /Applications"       >>  $PKGDIR/XTelevision.info
	echo "DeleteWarning "                      >>  $PKGDIR/XTelevision.info
	echo ""
	echo "### Package Flags"                   >>  $PKGDIR/XTelevision.info
	echo ""
	echo "NeedsAuthorization YES"              >>  $PKGDIR/XTelevision.info
	echo "Required NO"                         >>  $PKGDIR/XTelevision.info
	echo "Relocatable YES"                     >>  $PKGDIR/XTelevision.info
	echo "RequiresReboot NO"                   >>  $PKGDIR/XTelevision.info
	echo "UseUserMask NO"                      >>  $PKGDIR/XTelevision.info
	echo "OverwritePermissions NO"             >>  $PKGDIR/XTelevision.info
	echo "InstallFat NO"                       >>  $PKGDIR/XTelevision.info

	echo
	echo Creating diskimage $dmg
	echo

	echo try to unmount previous $xtv diskimgae

	prevdisk=`hdiutil info | grep XTelevision | grep -v dmg | cut -f 1`

	hdiutil eject $prevdisk -force

	sectors=`du -s $PKGROOT | cut -f 1`

	echo $sectors sectors needed for diskimage
	echo adding $sectoadd sectors

	sectors=`echo $sectors+$sectoadd | bc`

	hdiutil create $dmg -sectors $sectors -ov
	
	# get diskname

	disk=`hdid -nomount $dmg | grep HFS | cut -f 1`

	echo
	echo using disk $disk

	newfs_hfs -v $xtv $disk

	hdiutil eject $disk

	hdid $dmg

	/Developer/Tools/CpMac -r $PKGROOT  /Volumes/$xtv

	copy "$XTVDIR/doc/ReadMe.rtfd" /Volumes/$xtv

	cp "$XTVDIR/doc/VolumeIcon.icns" /Volumes/$xtv/.VolumeIcon.icns

	/Developer/Tools/SetFile -a C /Volumes/$xtv
}

( make_release )

