. ../locations.include
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
#clean up old ones
for i in 1 2 3 4 5 6 7 8
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
	mkdir -p $RELEASEDIR/$ARCH-disc0
fi
# Make disc0
#copy in isolinux and special *.iso config files
#sh $MYPWD/subscripts/fix.isolinux.sh
mkdir -p $RELEASEDIR/$ARCH-disc0/isolinux
cp -fa $RELEASEDIR/$ARCH/$SITEDIR/isolinux/* $RELEASEDIR/$ARCH-disc0/isolinux/
if [ -f $RELEASEDIR/$ARCH/$SITEDIR/build/isolinux/isolinux.cfg.iso ] ; then
 cp -f $RELEASEDIR/$ARCH/$SITEDIR/build/isolinux/isolinux.cfg.iso $RELEASEDIR/$ARCH-disc0/isolinux/isolinux.cfg
fi
if [ -f $RELEASEDIR/$ARCH/$SITEDIR/build/isolinux/boot.msg.iso ] ; then
 cp -f $RELEASEDIR/$ARCH/$SITEDIR/build/isolinux/boot.msg.iso $RELEASEDIR/$ARCH-disc0/isolinux/boot.msg
fi
if [ -d $RELEASEDIR/$ARCH/$SITEDIR/RHupdates ] ; then
  cp -a $RELEASEDIR/$ARCH/$SITEDIR/RHupdates $RELEASEDIR/$ARCH-disc0/$SITEDIR/
fi
#make updates.img from original area and copy in
cd $MYPWD/..
./make.updates.img.sh 
#Copy over misc things
cp $RELEASEDIR/$ARCH/.discinfo $RELEASEDIR/$ARCH-disc0/
#copy in $SITEDIR/RPMS which are RPMS 
mkdir -p $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
ln $RELEASEDIR/$ARCH/$SITEDIR/RPMS/*.noarch.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
ln $RELEASEDIR/$ARCH/$SITEDIR/RPMS/[a-m]*.i386.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
ln $RELEASEDIR/$ARCH/$SITEDIR/RPMS/[a-m]*.x86_64.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
ln $RELEASEDIR/$ARCH/$SITEDIR/RPMS/[n-z]*.i386.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
ln $RELEASEDIR/$ARCH/$SITEDIR/RPMS/[n-z]*.x86_64.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
ln $RELEASEDIR/$ARCH/$SITEDIR/RPMS/*.i686.rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
ln  $RELEASEDIR/$ARCH/$SITEDIR/updates/security/*rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
ln -f $RELEASEDIR/$ARCH/$SITEDIR/SITERPMS/*rpm $RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS
cd $RELEASEDIR/$ARCH/$SITEDIR/workgroups
find . -name "*.rpm" -print | xargs cp -av --target-directory=$RELEASEDIR/$ARCH-disc0/$SITEDIR/RPMS/
cd - 
mkdir $RELEASEDIR/$ARCH-disc0/repodata/
mkdir -p $RELEASEDIR/$ARCH-disc0/build/base/
cp -av $RELEASEDIR/$ARCH/$SITEDIR/build/base/* $RELEASEDIR/$ARCH-disc0/build/base/
cp -av $RELEASEDIR/$ARCH/$SITEDIR/SITERPMS/repodata/comps-site.xml $RELEASEDIR/$ARCH-disc0/repodata/
#
echo "Using $RELEASEDIR/$ARCH-disc0/build/base/pkgorder as the fileorder file"
#echo "and not making a new one"
echo "and making a new one"
cd $RELEASEDIR/$ARCH-disc0
createrepo -g $RELEASEDIR/$ARCH-disc0/repodata/comps-site.xml .
cd -
$MYPWD/pkgorder  $RELEASEDIR/$ARCH-disc0/ $ARCH $SITEDIR > /tmp/pkgorder
cp -v /tmp/pkgorder $RELEASEDIR/$ARCH-disc0/build/base/pkgorder
#Run splittree.py to split the $SITEDIR/RPMS onto multiple cd's
#cd $MYPWD/subscripts
#set `./calculate.num.cds.sh`
#TOTBINCD=$1
#TOTSRCCD=$2
#TOTCD=$3 
#if [ $ARCH = i386 ] ; then
#	TOTBINCD=7
#	TOTSRCCD=1
#	TOTCD=7 
#	RESERVE=150000000
#else
#	TOTBINCD=6
#	TOTSRCCD=1
#	TOTCD=7 
#	RESERVE=160000000
#fi
export TOTBINCD TOTSRCCD TOTCD
echo "\$TOTBINCD=$TOTBINCD; \$TOTSRCCD=$TOTSRCCD; \$TOTCD=$TOTCD"

echo "Total Binary cds is $TOTBINCD, Total SRC cds is $TOTSRCCD"
echo "Running splittree to decide on how to span the cd images"
echo "$MYPWD/splittree.py --arch=$ARCH --total-discs=$TOTCD " \
 "--bin-discs=$TOTBINCD --src-discs=$TOTSRCCD --release-string=$SITE " \
 "--pkgorderfile=/tmp/pkgorder " \
 "--srcdir=$RELEASEDIR/SRPMS/$SITEDIR/ --distdir=$RELEASEDIR/$ARCH-disc0 " \
 "--productpath=$SITEDIR --reserve-size=$RESERVE"
$MYPWD/splittree.py --arch=$ARCH --total-discs=$TOTCD \
  --bin-discs=$TOTBINCD --src-discs=$TOTSRCCD --release-string=$SITEDIR \
  --pkgorderfile=/tmp/pkgorder \
  --srcdir=$RELEASEDIR/SRPMS/$SITEDIR/ --distdir=$RELEASEDIR/$ARCH-disc0 \
  --productpath=$SITEDIR --reserve-size=$RESERVE



cd $RELEASEDIR
#TMPBINAREA=`echo $ARCH-disc0-disc[1-$TOTBINCD]/$SITEDIR $ARCH-disc0/$SITEDIR/SITERPMS $ARCH-disc0/$SITEDIR/updates/security $ARCH-disc0/$SITEDIR/workgroups`
TMPBINAREA=`echo $ARCH-disc0-disc[1-$TOTBINCD]/$SITEDIR/RPMS `
echo "Running createrepo against $TMPBINAREA"
MDATE=`date "+%s"`
echo "/usr/bin/createrepo " \
     "--groupfile $RELEASEDIR/$ARCH/$SITEDIR/RPMS/repodata/comps-sl.xml " \
     "--baseurl media://$MDATE.836690 " \
     "--outputdir $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/ " \
     "--basedir $RELEASEDIR " \
     "--split $TMPBINAREA"
cd $RELEASEDIR
/usr/bin/createrepo \
   --groupfile $RELEASEDIR/$ARCH/$SITEDIR/RPMS/repodata/comps-sl.xml \
   --baseurl media://$MDATE.836690 \
   --outputdir $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/ \
   --basedir $RELEASEDIR \
   --split $TMPBINAREA

if [ -d $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/repodata ] ; then
 mv $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/repodata $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/RPMS 
fi
echo "Copying things to disc1"
mkdir -p $RELEASEDIR/$ARCH-disc0-disc1/images
echo "CCC"
if [ -d $TREE/$SITEDIR/images ] ; then
  echo "CCD"
  cd $TREE/$SITEDIR/images
  find . -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc1/images
  cd $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/
  ln -s ../../images images
fi
echo $TREE

mkdir $RELEASEDIR/$ARCH-disc0-disc1/RPM-GPG-KEYs 
cp -a $RELEASEDIR/$ARCH/RPM-GPG-KEYs $RELEASEDIR/$ARCH-disc0-disc1/RPM-GPG-KEYs
#copy in the documentation
if [ -d $RELEASEDIR/$ARCH/$DEFAULT.documentation ] ; then
  mkdir $RELEASEDIR/$ARCH-disc0-disc1/$DEFAULT.documentation
  cp -ra $RELEASEDIR/$ARCH/$DEFAULT.documentation/ $RELEASEDIR/$ARCH-disc0-disc1/
fi
cp -p $RELEASEDIR/$ARCH/$SITEDIR/$SITE.releasenote* $RELEASEDIR/$ARCH-disc0-disc1/
cp -p $RELEASEDIR/$ARCH/README $RELEASEDIR/$ARCH-disc0-disc1/
ln -f $RELEASEDIR/$ARCH/GPL $RELEASEDIR/$ARCH-disc0-disc1/
cp -p $RELEASEDIR/$ARCH/RELEASE-NOTES*.html $RELEASEDIR/$ARCH-disc0-disc1/
#workgroups need the comps files and repomd.xml
mkdir -p $RELEASEDIR/$ARCH-disc0/$ARCH-disc0-disc1/$SITEDIR/workgroups/
cd $RELEASEDIR/$ARCH/$SITEDIR/workgroups
find . -name "comps*" -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/workgroups/
find . -name "repomd.xml" -print | cpio -pvdum $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/workgroups/
cd $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/workgroups/
for i in *
do
  cd $i
  createrepo -g repodata/comps-workgroup.xml .
  cd -
done
mkdir -p $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/SITERPMS/repodata
cp -av $RELEASEDIR/$ARCH/$SITEDIR/SITERPMS/repodata/comps-site.xml $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/SITERPMS/repodata
cd $RELEASEDIR/$ARCH-disc0-disc1/$SITEDIR/SITERPMS/
createrepo -g repodata/comps-site.xml .
cd $MYPWD 
if [ -d $TREE/updates/fastbugs/ ] ; then
  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD/fastbugs/
  cd $TREE/updates/fastbugs/
  ln $TREE/updates/fastbugs/*.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTCD/fastbugs/
  createrepo $RELEASEDIR/$ARCH-disc0-disc$TOTCD/fastbugs
fi
#if [ -d $TREE/$SITEDIR/updates/security/ ] ; then
#  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD/security/
#  cd $TREE/$SITEDIR/updates/security/
#  ln $TREE/$SITEDIR/updates/security/*.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTCD/security/
#  createrepo $RELEASEDIR/$ARCH-disc0-disc$TOTCD/security
#fi
if [ -d $RELEASEDIR/$ARCH-disc0/build/ ] ; then
  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD/build/
  cp -a $TREE/build/*  $RELEASEDIR/$ARCH-disc0-disc$TOTCD/build/
  mv -f $RELEASEDIR/$ARCH-disc0/build/base/* $RELEASEDIR/$ARCH-disc0-disc$TOTCD/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 $RELEASEDIR/$ARCH/$SITEDIR/contrib/ ] ; then
   mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/
   mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/SRPMS
   cd $RELEASEDIR/$ARCH/$SITEDIR//contrib/
   for i in *
   do
     if [ ! $i = "headers" ] ; then
	if [ -d $i ] ; then
        	mkdir $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/$i
        	ln $RELEASEDIR/$ARCH/$SITEDIR/contrib/$i/* $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/$i/
	fi
     fi
   done
   cd $RELEASEDIR/$ARCH/$SITEDIR/contrib/SRPMS/
   for i in *
   do
	if [ -d $i ] ; then
     		mkdir $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/SRPMS/$i
     		ln $RELEASEDIR/$ARCH/$SITEDIR/contrib/SRPMS/$i/*.src.rpm $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib/$i/SRPMS/
	fi
   done
   createrepo $RELEASEDIR/$ARCH-disc0-disc$TOTCD/contrib
fi
#Just do not have enough space on last cd so making a new one for SRPMS
#if [ $ARCH = "i386" ] ; then
#	TOTCD=`expr $TOTCD + 1`
#	mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD
#fi
#if [ -d $RELEASEDIR/SRPMS/SL/ ] ; then
#  mkdir -p $RELEASEDIR/$ARCH-disc0-disc$TOTCD/SRPMS/
#  cd $RELEASEDIR/SRPMS/SL
#  ln $RELEASEDIR/SRPMS/SL/* $RELEASEDIR/$ARCH-disc0-disc$TOTCD/SRPMS/
#fi
#Clean up a few things
if [ -d $RELEASEDIR/$ARCH-disc0-disc1/repodata ] ; then
        rm -r $RELEASEDIR/$ARCH-disc0-disc1/repodata
fi
