. ../locations.include
if [ -f ./locations.include.site ] ; then
	. ./locations.include.site
fi
MYPWD=`pwd`
export MYPWD
if [ -z $SITE ] ; then
  echo '$SITE" is not set , so exiting'
  exit 1
fi
#clean up old ones
for i in 1 2 3 4 5
do
   if [ -d $RELEASEDIR/$ARCH-disc0-disc$i ] ; then
	rm -r $RELEASEDIR/$ARCH-disc0-disc$i
   fi
done
if [ -d $RELEASEDIR/$ARCH-disc0 ] ; then
	rm -r $RELEASEDIR/$ARCH-disc0
fi
if [ -d $RELEASEDIR/$ARCH-disc0-SRPMS ] ; then
        rm -r $RELEASEDIR/$ARCH-disc0-SRPMS
fi
if [ -d $RELEASEDIR/$ARCH-disc0-CONTRIB ] ; then
        rm -r $RELEASEDIR/$ARCH-disc0-CONTRIB
fi
# Make disc0
mkdir -vp $RELEASEDIR/$ARCH-disc0/sites
cd $MYPWD
#copy in $SITE/base
mkdir -pv $RELEASEDIR/$ARCH-disc0/sites/$SITE/base
cp -a $RELEASEDIR/$ARCH/sites/$SITE/base/* $RELEASEDIR/$ARCH-disc0/sites/$SITE/base/
#copy in $SITE/documentation
mkdir $RELEASEDIR/$ARCH-disc0/documentation
cp -a $RELEASEDIR/$ARCH/sites/$SITE/documentation/* $RELEASEDIR/$ARCH-disc0/documentation/
if [ -f $RELEASEDIR/$ARCH/sites/$SITE/documentation/$SITE.releasenote ] ; then
  cp $RELEASEDIR/$ARCH/sites/$SITE/documentation/$SITE.releasenote $RELEASEDIR/$ARCH-disc0/
fi
cp $RELEASEDIR/$ARCH/$DEFAULT.*releasenote $RELEASEDIR/$ARCH-disc0/
cp $RELEASEDIR/$ARCH/README $RELEASEDIR/$ARCH-disc0/
#copy in $SITE/isolinux and special *.iso config files
mkdir $RELEASEDIR/$ARCH-disc0/isolinux
cp -f $RELEASEDIR/$ARCH/sites/$SITE/isolinux/* $RELEASEDIR/$ARCH-disc0/isolinux/
if [ -f $RELEASEDIR/$ARCH/sites/$SITE/build/isolinux/isolinux.cfg.iso ] ; then
 cp -f $RELEASEDIR/$ARCH/sites/$SITE/build/isolinux/isolinux.cfg.iso $RELEASEDIR/$ARCH-disc0/isolinux/isolinux.cfg
fi
if [ -f $RELEASEDIR/$ARCH/sites/$SITE/build/isolinux/boot.msg.iso ] ; then
 cp -f $RELEASEDIR/$ARCH/sites/$SITE/build/isolinux/boot.msg.iso $RELEASEDIR/$ARCH-disc0/isolinux/boot.msg
fi
#make updates.img from original area and copy in
$MYPWD/../make.updates.img.sh 
#Copy over misc things
cp $RELEASEDIR/$ARCH/sites/$SITE/.discinfo $RELEASEDIR/$ARCH-disc0/
mkdir -p $RELEASEDIR/$ARCH-disc0/sites/$SITE/build
cp -a $RELEASEDIR/$ARCH/sites/$SITE/build $RELEASEDIR/$ARCH-disc0/sites/$SITE/
cp -a $RELEASEDIR/$ARCH/RPM-GPG-KEYs $RELEASEDIR/$ARCH-disc0/
cp -a $RELEASEDIR/$ARCH/RELEASE-NOTES*.html $RELEASEDIR/$ARCH-disc0/
#Check size of $SITE/Updates .  Current limitation is that is must fit on
#one cdr along with the other things that we need.  So this means it has to
#less than 
AVAIL=550M
SIZE=`du -s -BM $RELEASEDIR/$ARCH-disc0 | cut -f1`
echo $SIZE
if [ $SIZE -gt $AVAIL ] ; then
   echo "Your $RELEASEDIR/sites/$SITE/Updates area is $SIZE MB big which is larger than a cdr along with the other files that we need, you need to use less than $AVAIL MB"
   exit 1
fi
#copy in $SITE/Updates which are RPMS for $SITE
mkdir $RELEASEDIR/$ARCH-disc0/sites/$SITE/Updates
ln $RELEASEDIR/$ARCH/sites/$SITE/Updates/*.rpm $RELEASEDIR/$ARCH-disc0/sites/$SITE/Updates
#copy in $DEFAULT/RPMS which are the default rpms
mkdir -p $RELEASEDIR/$ARCH-disc0/sites/$SITE/RPMS
ln $RELEASEDIR/$ARCH/$DEFAULT/RPMS/*.rpm $RELEASEDIR/$ARCH-disc0/sites/$SITE/RPMS/
#
#Need to make this directory no matter what as splittree expects it
mkdir -p $RELEASEDIR/$ARCH-disc0-SRPMS

if [ -d $RELEASEDIR/SRPMS ] ; then
  ln $RELEASEDIR/SRPMS/*.src.rpm $RELEASEDIR/$ARCH-disc0-SRPMS
fi
if [ -d $RELEASEDIR/$ARCH/sites/$SITE/SRPMS ] ; then
  ln $RELEASEDIR/$ARCH/sites/$SITE/SRPMS/*  $RELEASEDIR/$ARCH-disc0-SRPMS
fi
#Now made a temp area for contrib
mkdir -p $RELEASEDIR/$ARCH-disc0-CONTRIB

if [ -d $RELEASEDIR/$ARCH/contrib/RPMS ] ; then
  cd $RELEASEDIR/$ARCH/contrib/
  find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-CONTRIB
fi
if [ -d $RELEASEDIR/$ARCH/sites/$SITE/contrib ] ; then
  cd $RELEASEDIR/$ARCH/sites/$SITE/contrib/
  find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-CONTRIB
fi
#
echo "Using $RELEASEDIR/$ARCH/sites/$SITE/base/$FILEORDER as the fileorder file"
#echo "and not making a new one"
#cp -v $RELEASEDIR/$ARCH/sites/$SITE/base/$FILEORDER $RELEASEDIR/$ARCH-disc0/$SITE/base/
echo "and making a new one"
$ANACONDADIR/pkgorder $RELEASEDIR/$ARCH $ARCH --product sites/$SITE  > $RELEASEDIR/$ARCH-disc0/sites/$SITE/base/$FILEORDER
#Run splittree.py to split the $DEFAULT/RPMS onto multiple cd's
echo "Running splittree to decide on how to span the cd images"
#Depending on how many RPMS you have in /Updates you might have to increase 
# LASTSRCDISK and LASTBINDISK , look at output and if you see messages about
# rpms not fitting then you need to increase these.
LASTDISC=4
BINDISC=4
TOTCD=4
TOTSRCDISC=1
$ANACONDADIR/splittree.py --arch=$ARCH --total-discs=$TOTCD --bin-discs=$BINDISC --src-discs=$TOTSRCDISC --release-string=$SITE --pkgorderfile=$RELEASEDIR/$ARCH-disc0/sites/$SITE/base/$FILEORDER --distdir=$RELEASEDIR/$ARCH-disc0 --srcdir=$RELEASEDIR/$ARCH-disc0-SRPMS --productpath=sites/$SITE
#Need to remake these links on $ARCH-disc0-disc1 as splittree did not preserve 
echo "making special directories on $RELEASEDIR/$ARCH-disc0-disc1"
mkdir -vp $RELEASEDIR/$ARCH-disc0-disc1/sites
cd $RELEASEDIR/$ARCH-disc0-disc1/
cd sites
#Run genhdlist to create new hdlists with cd numbers 
if [ -s $RELEASEDIR/$ARCH-disc0/sites/$SITE/base/excludedrpms.cdrom ] ; then
   GENHDLIST="$ANACONDADIR/genhdlist $1 --ignorefile $RELEASEDIR/$ARCH-disc0/sites/$SITE/base/excludedrpms.cdrom --ignorelog $RELEASEDIR/$ARCH-disc0/sites/$SITE/base/excludedrpms.cdrom.ignored "
else
   GENHDLIST=$ANACONDADIR/genhdlist $1
fi
TMPBINAREA=`echo $RELEASEDIR/$ARCH-disc0-disc[1-$BINDISC]`
echo "Running genhdlist against $TMPBINAREA"
cd $RELEASEDIR
$GENHDLIST --withnumbers --hdlist $RELEASEDIR/$ARCH-disc1/sites/$SITE/base/ --fileorder `pwd`/$ARCH-disc0/sites/$SITE/base/$FILEORDER --default $DEFAULT  --site $SITEDIR $TMPBINAREA 
if [ -s $RELEASEDIR/$ARCH-disc0/sites/$SITE/base/excludedrpms.cdrom.ignored ] ; then
   rm /tmp/excluded 2>/dev/null
   rm /tmp/excluded.asked 2>/dev/null
   rm /tmp/excluded.found 2>/dev/null
   sort ../../base/excludedrpms.cdrom | uniq >/tmp/excluded.asked
   sort ../../base/excludedrpms.cdrom.ignored | uniq > /tmp/excluded.found
   comm -3 /tmp/excluded.asked /tmp/excluded.found | grep -v "^#" > /tmp/excluded
   if [ -s /tmp/excluded ] ; then
     echo ""
     echo "These file entries from your excludedrpms file were not found"
     echo "-------------------------------------------------------------"
     cat /tmp/excluded
     echo "-------------------------------------------------------------"
   fi
fi
cd /
#Have to move contrib areas to cds
CDSIZE=`expr 650 \* 1024`  # 650MB in k
EXTRA=`expr 5 \* 1024` 
CONTRIBRPMS=`du -ks $RELEASEDIR/$ARCH-disc0-CONTRIB | cut -f1`
IMAGES=`du -ks $TREE/sites/$SITE/images | cut -f1`
SPACELEFTONBIN=`du -ks $RELEASEDIR/$ARCH-disc0-disc$BINDISC | cut -f1`
SPACELEFTONLASTBIN=`expr $CDSIZE - $SPACELEFTONBIN`
contrib="nope"
#copy in images/ to last bin cd if it fits
if [ $SPACELEFTONLASTBIN -gt $IMAGES ] ; then
  #copy in images 
  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$BINDISC/images
  cd $TREE/sites/$SITE/images/
  find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$BINDISC/images/
  SPACELEFTONBIN=`du -ks $RELEASEDIR/$ARCH-disc0-disc$BINDISC | cut -f1`
  SPACELEFTONLASTBIN=`expr $CDSIZE - $SPACELEFTONBIN`
else
  #copy in images to last disk 
  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$LASTDISC/images
  cd $TREE/sites/$SITE/images/
  find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$BINDISC/images/
  SPACELEFTONSRPM=`du -ks $RELEASEDIR/$ARCH-disc0-disc$LASTDISC | cut -f1`
  SPACELEFTONLASTSRPM=`expr $CDSIZE - $SPACELEFTONSRPM`
fi
# maybe contrib will fit
if [ $SPACELEFTONLASTBIN -gt $CONTRIBRPMS ] ; then
    #copy in contrib/RPMS
    mkdir -p $RELEASEDIR/$ARCH-disc0-disc$BINDISC/contrib
    cd $RELEASEDIR/$ARCH-disc0-CONTRIB/
    find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$BINDISC/contrib
    contrib="done"
    echo "Put contrib rpms on cd $BINDISC"
fi
SPACELEFTONSRPM=`du -ks $RELEASEDIR/$ARCH-disc0-disc$LASTDISC | cut -f1`
SPACELEFTONLASTSRPM=`expr $CDSIZE - $SPACELEFTONSRPM`
if [ ! $contrib = "done" ] ; then
    # contrib didnt fit so lets try the last srpm disc
    if [ $SPACELEFTONLASTSRPM -gt $CONTRIBRPMS ] ; then
      #copy in contrib/RPMS
      mkdir -p $RELEASEDIR/$ARCH-disc0-disc$LASTDISC/contrib
      cd $RELEASEDIR/$ARCH-disc0-CONTRIB/
      find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$LASTDISC/contrib/
      contrib="done"
      echo "Put contrib rpms on cd $LASTDISC"
    fi
fi
if [ ! $contrib = "done" ] ; then
	# contrib did not fit on last SRPM disk either
        # For now just make a new disk and put contrib on it
# check to see if contrib is > 1 disk - needs to handle it (later)
        if [ $CONTRIBRPMS -gt $CDSIZE ] ; then
	  echo "Contribs is > 1 CD - the last iso will be too big, skipping"
        else	
          TOTCD=`expr $LASTDISC + 1 `
          contrib="contribonlylast"
          #copy in contrib/RPMS to either last or a new one
          mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/RPMS
          cd $TREE/contrib/RPMS/
          find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/RPMS/
          echo "Put contrib rpms on cd $TOTCD"
	fi
fi
  
#Now make the iso images
#CHECK that $CDISOAREA exists and make if it does not
if [ -d $CDISOAREA ] ; then
  echo "Creating CD iso images in $CDISOAREA"
else
  mkdir -p $CDISOAREA 
fi
CDNAME=$CDISOAREA/$DEFAULT.$SITE.$VERSION.$DATE.$ARCH
# Make disc1
CDNUM=1
cd $MYPWD/subscripts
$MYPWD/subscripts/makeapt.site.iso.sh $CDNUM
echo "Making iso image for disc$CDNUM now"
sh $MYPWD/subscripts/mkisoimage.disc$CDNUM.site.sh --subdir $ARCH-disc0-disc$CDNUM --dest $CDNAME.disc$CDNUM.iso
echo "implanting md5sum in disc$CDNUM now"
$ANACONDADIR/implantisomd5 $CDNAME.disc$CDNUM.iso
# Make discx
CDNUM=2
while [ $CDNUM -le $TOTCD ]
do
  cd $MYPWD/subscripts
  $MYPWD/subscripts/makeapt.site.iso.sh $CDNUM 
  echo "Making iso image for disc$CDNUM now"
  $MYPWD/subscripts/mkisoimage.discx.site.sh --subdir $ARCH-disc0-disc$CDNUM --dest $CDNAME.disc$CDNUM.iso
  echo "implanting md5sum in disc$CDNUM now"
  $ANACONDADIR/implantisomd5 $CDNAME.disc$CDNUM.iso 
  CDNUM=`expr $CDNUM + 1`
done

cd $CDISOAREA
echo "Making md5sums now, this will take a while"
md5sum *.disc?.iso > $CDNAME.md5sum
