#!/bin/sh

. ./scripts/parse-config

if [ -z "$1" ] ; then
	echo
	echo "Usage: ./scripts/Create-CD  source | <arch> [cd-number]"
	echo
	echo "Type './scripts/Help Create-CD' for details."
	echo
	exit 1
fi

if [ "$1" != "source" -a ! -d arch-conf/"$1" ] ; then
	echo
	echo "Don't know how to create cd image '$1'."
	echo
	exit 1
fi

# Create cd root
#
rm -rf src/cd-root-$1
mkdir -p src/cd-root-$1

# Configure the mkisofs call
#
cmd="mkisofs -A 'dRock Linux $rockver' -d -f -l -J -L"
cmd="$cmd -r -T -v"
if [ "$2" = "1" ] || [ "$2" = "2" ] || [ "$2" = "boot" ] ; then
	cmd="$cmd -o rock-$1-$rockver-CD-$2.iso"
else
	cmd="$cmd -o rock-$1-$rockver.iso"
fi
cmd="$cmd -P 'The ROCK Projects Workgroup"
cmd="$cmd <http://www.rock-projects.com/>'"
cmd="$cmd -p 'Clifford Wolf <http://www.clifford.at/>'"
if [ "$2" = "1" ] || [ "$2" = "boot" ] ; then
  if [ -f rock-$1-$rockver/floppies/kombo-disk.img ] ; then
	cmd="$cmd -b rock-$1-$rockver/floppies/kombo-disk.img"
	cmd="$cmd -c rock-$1-$rockver/floppies/boot.catalog"
  else
	echo "Boot image not found!"
	exit -1
  fi
fi
cmd="$cmd src/cd-root-$1"

echo "Creating fresh source tar ..."
./scripts/Create-SrcTar

if [ "$1" = source ] ; then
	./scripts/Create-SrcTar
	for x in rock-src-$rockver.tar.bz2 pkg-archive \
	         opt-archive Documentation COPYING README \
		 README.dRock TODO.dRock ChangeLog.dRock
	do cp -rsv $base/$x src/cd-root-$1/$x ; done
else
	# $2 contains the dRock cd number ;-)
	#
	if [ "$2" != "1" ] && [ "$2" != "2" ] && [ "$2" != "boot" ] ; then
		echo
		echo "Don't know how to create cd image #$2."
		echo "dRock has CD 1, 2 and boot"
		exit 1
	fi
	
	echo "Creating symlink-tree ..."
	
	for x in rock-src-$rockver.tar.bz2 Documentation \
		rock-$1-$rockver COPYING README \
	 	README.dRock TODO.dRock ChangeLog.dRock
	do cp -rsv $base/$x src/cd-root-$1/$x ; done
	
	echo "Do some special dRock movements ..."
	mv -v src/cd-root-$1/rock-$1-$rockver/wrapped/* src/cd-root-$1
	rm -rv src/cd-root-$1/rock-$1-$rockver/wrapped
	
	echo "Removing some general garbage ..."
	find src/cd-root-$1 -follow -name 'rock-debug.tar.bz2' \
	     -o -name CONFIG-FAQ.src -o -name rock-debug -o -name logs \
	     -o -name buildit.sh -o -name '*~' | xargs rm -rfv
	
	case "$2" in
	  "1")
		echo "Cleaning up for CD #1 ..."
		for x in `grep '^[z]' scripts/packages | cut -d ' ' -f5 ` ; do
		  rm -vf src/cd-root-$1/rock-$1-$rockver/base-pkgs/$x.tar.bz2
		  rm -vf src/cd-root-$1/rock-$1-$rockver/info/{cksums,flists,logs,md5sums,packages}/{?-$x.log,$x}
		done
		;;
	  "2")
		echo "Cleaning up for CD #2 ..."
		for x in rock-src-$rockver.tar.bz2 \
			Documentation rock-$1-$rockver/floppies \
			rock-$1-$rockver/subdists rock-$1-$rockver/Install.bin
		do rm -rfv src/cd-root-$1/$x ; done
		
		for x in `grep '^[xo]' scripts/packages | cut -d ' ' -f5 ` ; do
		  rm -vf src/cd-root-$1/rock-$1-$rockver/base-pkgs/$x.tar.bz2
		  rm -vf src/cd-root-$1/rock-$1-$rockver/info/{cksums,flists,logs,md5sums,packages}/{?-$x.log,$x}
		done
		
		echo "Copying some extra file ..."
		cp -sv $base/Documentation/2nd-CD-README src/cd-root-$1/2nd-CD-README
		;;
	  "boot")
		echo "Cleaning up for boot-only CD ..."
		rm -rvf src/cd-root-$1/rock-$1-$rockver/{base-pkgs,info,subdists,Install.bin}
		rm -rvf src/cd-root-$1/rock-$1-$rockver/floppies/{root-*,boot-*}	
		rm -rvf src/cd-root-$1/rock-src-$rockver.tar.bz2
		;;
	esac

	if [ "$2" = "1" ] ; then
	  echo "Adding some other usefull tools ..."
	  # DOS Utilities
	  #
	  case $arch_machine in
	    i?86)
		set -e

		# rawrite
		#
		mkdir -p src/cd-root-$1/dosutils/rawrite3
		cd src/cd-root-$1/dosutils/rawrite3
		unzip $base/opt-archive/rawrite3.zip

		# fips
		#
		mkdir -p ../fips20 ; cd ../fips20
		unzip $base/opt-archive/fips20.zip
		rm -rf source restorrb

		# loadlin
		#
		mkdir -p ../lodlin16 ; cd ../lodlin16
		tar --use-compress-program=bzip2 -xvf \
			$base/opt-archive/lodlin16.tbz2
		rm -rf src

		cd $base ; set +e ;;
	  esac
	fi
fi

# Do it!
#
cd $base
echo "$cmd" ; eval "$cmd"
rm -rf src/cd-root-$1
