#!/bin/sh

## program locations
##

wget=/usr/local/bin/wget
uuencode=/usr/bin/uuencode

## where to find pisg
##

downloadsite=http://prdownloads.sourceforge.net/pisg

## STUFF. yeah. stuff.
##

pisgver=$1
pisgdir=pisg-$pisgver
pisgtar=$pisgdir.tar.gz
portskel=port-skel
newportdir=port
portfilename=pisg.tar.gz
date=`date`

if [ ! $1 ]
then
	echo "Usage: $0 <pisg version>"
	exit
elif [ ! -f $pisgtar ]
then
#sometimes I really get fed up of all these god damn if statements
	[ -x $wget ] || { echo "$pisgtar doesn't exist and I can't find $wget, exiting"; exit; }
	$wget $downloadsite/$pisgtar
elif [ ! -d $portskel ]
then
	echo "port skeleton directory '$portskel' doesn't exist"
	exit
fi

tar fxzv $pisgtar
cd $pisgdir
cat <<EOMAKEFILE>>Makefile.PL
use ExtUtils::MakeMaker;
WriteMakefile(
	NAME	=> 'Pisg',
	VERSION	=> '$1',
	);
EOMAKEFILE
perl Makefile.PL
make manifest
touch MANIFEST.orig
diff -c MANIFEST.orig MANIFEST > patch-MANIFEST
rm MANIFEST.orig

cd ..

[ -d $newportdir ] && rm -r $newportdir

cp -r $portskel $newportdir
cd $newportdir

perl -pi -e "s/%%VERSION%%/$pisgver/; s/%%DATE%%/$date/" Makefile

make makesum DISTDIR=..

cd ..

cp $pisgdir/MANIFEST $newportdir/pkg-plist
mv $pisgdir/patch-MANIFEST $newportdir/pkg-plist

tar zcvf $portfilename $newportdir

if [ -x $uuencode ]
then
	$uuencode $portfilename $portfilename.uu > $portfilename.uu
else
	echo "can't find / execute uuencode program '$uuencde'"
fi

exit 1
