. ../locations.include
ANACONDADIR="$TREE/build/scripts/buildisoimages/"
MYPWD=`pwd`
export MYPWD
if [ $ARCH != `uname -i` ] ; then
  echo "You seem to be trying to build arch $ARCH , on a `uname -i` system"
  echo "exiting"
  exit 1
fi
MEDIA=$1
if [ -z $MEDIA ] ; then
        echo "You must pass either \"CD\" or \"DVD\" "
        exit 1
fi
if [ $MEDIA = "dvd" -o $MEDIA = "DVD" ] ; then
   TOTBINISO=$TOTBINDVD
   TOTISO=$TOTDVD
   TOTSRCISO=$TOTSRCDVD
   MEDIA="DVD"
   DISCSIZE=$DISCSIZEDVD
else
  if [ $MEDIA = "cd" -o $MEDIA = "CD" ] ; then
        TOTBINISO=$TOTBINCD
        TOTISO=$TOTCD
        TOTSRCISO=$TOTSRCCD
        MEDIA="CD"
   	DISCSIZE=$DISCSIZECD
  else
        echo "You must pass either \"CD\" or \"DVD\" "
        exit 1
  fi
fi
echo "You selected to create $MEDIA iso images"
#clean up old ones
echo "Cleaning up the old areas"
for i in $(seq 1 $TOTCD) 
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
# Make disc0
echo "Make disk0"
mkdir -vp $RELEASEDIR/$ARCH-disc0/$DEFAULT
#copy in the documentation
if [ -d $RELEASEDIR/$ARCH/$DEFAULT.documentation ] ; then
  mkdir $RELEASEDIR/$ARCH-disc0/$DEFAULT.documentation
  cp -ra $RELEASEDIR/$ARCH/$DEFAULT.documentation/ $RELEASEDIR/$ARCH-disc0/
fi
cp -p $RELEASEDIR/$ARCH/$DEFAULT.releasenote* $RELEASEDIR/$ARCH-disc0/
cp -p $RELEASEDIR/$ARCH/README $RELEASEDIR/$ARCH-disc0/
ln -f $RELEASEDIR/$ARCH/GPL $RELEASEDIR/$ARCH-disc0/
cp -p $RELEASEDIR/$ARCH/RELEASE-NOTES*.html $RELEASEDIR/$ARCH-disc0/
#copy in isolinux and special *.iso config files
#sh $MYPWD/subscripts/fix.isolinux.sh
mkdir $RELEASEDIR/$ARCH-disc0/isolinux
cp -fa $RELEASEDIR/$ARCH/isolinux/* $RELEASEDIR/$ARCH-disc0/isolinux/
if [ -f $RELEASEDIR/$ARCH/build/isolinux/isolinux.cfg.iso ] ; then
 cp -f $RELEASEDIR/$ARCH/build/isolinux/isolinux.cfg.iso $RELEASEDIR/$ARCH-disc0/isolinux/isolinux.cfg
fi
if [ -f $RELEASEDIR/$ARCH/build/isolinux/boot.msg.iso ] ; then
 cp -f $RELEASEDIR/$ARCH/build/isolinux/boot.msg.iso $RELEASEDIR/$ARCH-disc0/isolinux/boot.msg
fi
if [ -d $RELEASEDIR/$ARCH/RHupdates ] ; then
  cp -a $RELEASEDIR/$ARCH/RHupdates $RELEASEDIR/$ARCH-disc0/
fi
#make updates.img from original area and copy in
cd $MYPWD/..
./make.updates.img.sh 
#Copy over misc things
cd -
cp $RELEASEDIR/$ARCH/.discinfo $RELEASEDIR/$ARCH-disc0/
cp -a $RELEASEDIR/$ARCH/RPM-GPG-KEYs $RELEASEDIR/$ARCH-disc0/
######
#begin copy in $DEFAULT/ which are rpm's
#First Change into the directory
cd $RELEASEDIR/$ARCH/$DEFAULT/
#Do the links
echo "Starting to link in the rpms"
ln *.rpm $RELEASEDIR/$ARCH-disc0/$DEFAULT/
#Then change back into the original directory
cd -
#end copy
mkdir $RELEASEDIR/$ARCH-disc0/$DEFAULT/repodata/
cp -a $RELEASEDIR/$ARCH/$DEFAULT/repodata/* $RELEASEDIR/$ARCH-disc0/$DEFAULT/repodata/
mkdir -p $RELEASEDIR/$ARCH-disc0/build/base/
cp -a $RELEASEDIR/$ARCH/build/base/* $RELEASEDIR/$ARCH-disc0/build/base/
#
cd $RELEASEDIR/$ARCH-disc0
echo "Running createrepo in quiet mode"
createrepo --quiet -g $RELEASEDIR/$ARCH-disc0/$DEFAULT/repodata/comps*xml .
cd -
echo "Using $RELEASEDIR/$ARCH-disc0/build/base/$FILEORDER-$DEFAULT as the fileorder file"
if [ ! -n $2 ] ; then
   echo "and not making a new one"
   cp $RELEASEDIR/$ARCH/build/base/$FILEORDER-$DEFAULT.save $RELEASEDIR/$ARCH-disc0/build/base/$FILEORDER-$DEFAULT
else
  echo "and making a new one"
   $ANACONDADIR/pkgorder  $RELEASEDIR/$ARCH-disc0/ $ARCH $DEFAULT > $RELEASEDIR/$ARCH-disc0/build/base/$FILEORDER-$DEFAULT
   #openafs-kernel-source is not getting on the cd so adding it manually
   grep openafs-kernel-source $RELEASEDIR/$ARCH-disc0/build/base/$FILEORDER-$DEFAULT
   if [ $? -eq 1 ] ; then
        cd $RELEASEDIR/$ARCH-disc0/$DEFAULT
        ls openafs-kernel-source* >> $RELEASEDIR/$ARCH-disc0/build/base/$FILEORDER-$DEFAULT
        cd -
   fi
   cp $RELEASEDIR/$ARCH-disc0/build/base/$FILEORDER-$DEFAULT $RELEASEDIR/$ARCH/build/base/$FILEORDER-$DEFAULT.save
fi
#Need to clean up $RELEASEDIR/$ARCH-disc0/$DEFAULT/repodata as splittree barfs
cd $RELEASEDIR/$ARCH-disc0/$DEFAULT/
rm -r repodata
#Run splittree.py to split the $DEFAULT onto multiple cd's

echo "Total Binary $MEDIA iso is $TOTBINISO, Total SRC $MEDIA is $TOTSRCISO"
echo "Running splittree to decide on how to span the cd images"
echo "$ANACONDADIR/splittree.py --arch=$ARCH --total-discs=$TOTISO " \
 "--bin-discs=$TOTBINISO --src-discs=$TOTSRCISO --release-string=$DEFAULT " \
 "--disc-size=$DISCSIZE " \
 "--pkgorderfile=$RELEASEDIR/$ARCH-disc0/build/base/$FILEORDER-$DEFAULT " \
 "--srcdir=$RELEASEDIR/SRPMS/$DEFAULT/ --distdir=$RELEASEDIR/$ARCH-disc0 " \
 "--productpath=$DEFAULT --reserve-size=$ISO1RESERVESIZE "
$ANACONDADIR/splittree.py --arch=$ARCH --total-discs=$TOTISO \
  --bin-discs=$TOTBINISO --src-discs=$TOTSRCISO --release-string=$DEFAULT \
  --disc-size=$DISCSIZE  \
  --pkgorderfile=$RELEASEDIR/$ARCH-disc0/build/base/$FILEORDER-$DEFAULT \
  --srcdir=$RELEASEDIR/SRPMS/$DEFAULT/ --distdir=$RELEASEDIR/$ARCH-disc0 \
  --productpath=$DEFAULT --reserve-size=$ISO1RESERVESIZE

echo "Running createrepo against $RELEASEDIR/$ARCH-disc0-disc[1-$TOTBINISO]"


cd $RELEASEDIR
TMPBINAREA=`echo $ARCH-disc0-disc[1-$TOTBINISO]/$DEFAULT`
MDATE=`date "+%s"`
echo "/usr/bin/createrepo " \
     "--groupfile $RELEASEDIR/$ARCH/$DEFAULT/repodata/comps-sl.xml " \
     "--baseurl media://$MDATE.836690 " \
     "--outputdir $RELEASEDIR/$ARCH-disc0-disc1/$DEFAULT/ " \
     "--basedir $RELEASEDIR " \
     "--split $TMPBINAREA"
cd $RELEASEDIR
/usr/bin/createrepo \
   --groupfile $RELEASEDIR/$ARCH/$DEFAULT/repodata/comps-sl.xml \
   --baseurl media://$MDATE.836690 \
   --outputdir $RELEASEDIR/$ARCH-disc0-disc1/$DEFAULT/ \
   --basedir $RELEASEDIR \
   --split $TMPBINAREA

echo ""
mkdir -p $RELEASEDIR/$ARCH-disc0-disc1/images
if [ -d $TREE/images/$DEFAULT ] ; then
  cd $TREE/images/$DEFAULT
  find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc1/images
else
  cd $TREE/images
  find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc1/images
fi
echo $TREE

if [ -d $TREE/updates/fastbugs/ ] ; then
  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTISO/fastbugs/
  cd $TREE/updates/fastbugs/
  ln $TREE/updates/fastbugs/*.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTISO/fastbugs/
  createrepo $RELEASEDIR/$ARCH-disc0-disc$TOTISO/fastbugs
fi
if [ -d $TREE/updates/security/ ] ; then
  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTISO/security/
  cd $TREE/updates/security/
  ln $TREE/updates/security/*.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTISO/security/
  createrepo $RELEASEDIR/$ARCH-disc0-disc$TOTISO/security
fi
if [ -d $RELEASEDIR/$ARCH-disc0/build/ ] ; then
  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTISO/build/
  cp -a $TREE/build/*  $RELEASEDIR/$ARCH-disc0-disc$TOTISO/build/
  mv -f $RELEASEDIR/$ARCH-disc0/build/base/* $RELEASEDIR/$ARCH-disc0-disc$TOTISO/build/base/
  if [ -d $RELEASEDIR/$ARCH-disc0-disc1/build/base ] ; then
  	rm -r $RELEASEDIR/$ARCH-disc0-disc1/build/base
  	rmdir $RELEASEDIR/$ARCH-disc0-disc1/build
  fi
fi
if [ -d $TREE/contrib/ ] ; then
   mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib/
   cd $TREE/contrib/
   for i in *
   do
     if [  ! $i = "repodata"  ] ; then
     	if [  !  $i = "SRPMS"  ] ; then
	    if [ -d $i ] ; then
        	mkdir $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib/$i
        	ln $TREE/contrib/$i/* $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib/$i/
	    fi
	fi
     fi
   done
   mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib/SRPMS
   cd $TREE/contrib/SRPMS/
   for i in *
   do
	if [ -d $i ] ; then
     		ln $i/*.src.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib/SRPMS/
	fi
   done
   createrepo $RELEASEDIR/$ARCH-disc0-disc$TOTISO/contrib
fi
#Clean up a few things
if [ -d $RELEASEDIR/$ARCH-disc0-disc1/repodata ] ; then
 	rm -r $RELEASEDIR/$ARCH-disc0-disc1/repodata
fi
echo `date` > $RELEASEDIR/$ARCH-disc0-disc1/.$MEDIA
