#!/bin/sh -e
#----------------------------------------------------------------------
# Build the MacPython 2.3 extensions for an installation to run
# on the pre-installed 2.3 framework build on OSX 10.3

# TODO:  Parameterize the versions, builddirs, etc...

# Script configs
PYVERSION=2.3
PYVER=2.3
BUILDNUM=2
DOCLEANUP=no

PROGDIR="`dirname \"$0\"`"
case x$PROGDIR in
x|x.) PROGDIR=`pwd` ;;
x/*) ;;
*) echo "Please run with a full pathname"
   exit 1
   ;;
esac

if [ ! -e /usr/bin/python ]; then
	echo "No /usr/bin/python; this script expects to be run on 10.3 only"
	exit 1
fi

TMPDIR=/tmp/_py
#TMPDIR=/projects/_py

INSTALLROOT=$TMPDIR/install
DMGDIR=$TMPDIR/dmg
RESOURCEDIR=$PROGDIR/resources.panther
DESTDIR=$TMPDIR/dist
PYTHONSRC=$PROGDIR/../../..
PYTHONOSXDIR=$PYTHONSRC/Mac/OSX
WASTEDIR=$PYTHONSRC/../waste

rm -rf $DMGDIR
if [ ! -e $TMPDIR ]; then
	mkdir $TMPDIR
fi
chgrp admin $TMPDIR
mkdir -p $DMGDIR/root


# Ask the user whether s/he has edited Welcome.txt
read -p "Have you updated $RESOURCEDIR/Welcome.txt (Y/n)? " welcome

if [ "$welcome" = "n" -o "$welcome" = "N" ]; then
	echo "Please do so and retry"
	exit
fi

# Make the installation directories
mkdir -p $INSTALLROOT/Applications
mkdir -p $INSTALLROOT/Library/Python/$PYVER

# Make a temporary site-packages symlink
mkdir -p $INSTALLROOT/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/
ln -s $INSTALLROOT/Library/Python/$PYVER $INSTALLROOT/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages

pushd $PYTHONOSXDIR

make -f Makefile.panther DIRMODE=775 EXEMODE=775 FILEMODE=664 DESTDIR=$INSTALLROOT

# Remove the temporary symlink
rm -r $INSTALLROOT/System

# Unfortunately all the ...MODE arguments above still don't do the trick.
# Cop out, and recursively set everything group-writeable.
chmod -R ug+w $INSTALLROOT

popd

# Make the Installer package:

# Finally, build the package...
rm -rf MacPython-Panther.pkg
python $PYTHONSRC/Mac/scripts/buildpkg.py \
    --Title=MacPython-Panther \
    --Version=$PYVERSION-$BUILDNUM \
    --Description="MacPython $PYVERSION tools and additions for Mac OS X 10.3" \
    --NeedsAuthorization="YES" \
    --Relocatable="NO" \
    --InstallOnly="YES" \
    --UseUserMask="NO" \
    $INSTALLROOT \
    $RESOURCEDIR

#    --RootVolumeOnly="YES" \

# ...and then make a disk image containing the package.
mv MacPython-Panther.pkg $DMGDIR/root
cp $RESOURCEDIR/ReadMe.txt $DMGDIR/root/ReadMe.txt
$PROGDIR/makedmg $DMGDIR/root $DMGDIR MacPython-Panther-$PYVERSION-$BUILDNUM

echo Moving $DMGDIR/MacPython-Panther-$PYVERSION-$BUILDNUM to $DESTDIR
if [ ! -e $DESTDIR ]; then
    mkdir $DESTDIR
fi
mv $DMGDIR/MacPython-Panther-$PYVERSION-$BUILDNUM.dmg $DESTDIR


# Cleanup build/install dirs
if [ $DOCLEANUP = yes ]; then
    echo "Cleaning up..."
    rm -rf $INSTALLROOT
    rm -rf $DMGDIR
else
    echo "Cleanup is disabled.  You should remove these dirs when done:"
    echo "          $INSTALLROOT"
    echo "          $DMGDIR"
fi
echo "Your installer can be found in $DESTDIR"