#!/bin/sh
# Lukasz Pawelczyk <havner@pld-linux.org> 2004
# $Id: livecd_gen_iso,v 1.14 2006/02/27 16:28:48 havner Exp $

# Source function library
. /etc/rc.d/init.d/functions-live

if [ ! $UID = 0 ]; then
	echo "You must run this script as root"
	exit 1
fi

if [ -n "$HOME_ETC" -a -f "$HOME_ETC/.livecd_remaster" ]; then
	. $HOME_ETC/.livecd_remaster
elif [ -f ~/.livecd_remaster ]; then
	. ~/.livecd_remaster
else
	echo "There is no config file in your home or \$HOME_ETC dir"
	exit 1
fi

if [ ! -x "`which busybox`" ]; then
	echo "Install busybox (poldek -i busybox) before running this script"
	exit 1
fi

if [ ! -x "`which mksquashfs`" ]; then
	echo "Install squashfs (poldek -i squashfs) before running this script"
	exit 1
fi

if [ ! -x "`which mkisofs`" ]; then
	echo "Install mkisofs (poldek -i cdrtools-mkisofs) before running this script"
	exit 1
fi

# preparation, external scripts

#echo "Running livecd_gen_initrd to prepare/fix livecd internal initrd."
#if [ ! -x "`which livecd_gen_initrd`" ]; then
#	echo "There is no livecd_gen_initrd script."
#	exit 1
#fi
#if ! livecd_gen_initrd; then
#	echo "Initrd preparation script failed."
#	exit 1
#fi

echo Running fix_live
chroot $ROOTFS /usr/local/bin/fix_live
echo done

mkdir $SQUASHFS

mv $ROOTFS/bin $SQUASHFS/bin-bind
mv $ROOTFS/sbin $SQUASHFS/sbin-bind
mv $ROOTFS/lib $SQUASHFS/lib-bind
mv $ROOTFS/usr $SQUASHFS/usr-bind
mv $ROOTFS/boot $SQUASHFS/boot-bind
mv $ROOTFS/live/* $SQUASHFS/

mkdir $ROOTFS/bin 
mkdir $ROOTFS/sbin 
mkdir $ROOTFS/lib 
mkdir $ROOTFS/usr 
mkdir $ROOTFS/boot 
 
echo Generating initrd
rm -rf $CD/boot/initrd.gz
genromfs -f $CD/boot/initrd -d $INITRD -V "PLD initrd"
busybox gzip $CD/boot/initrd
echo done

echo Generating pldram
rm -rf $CD/pldram
cd $ROOTFS
busybox tar -czf $CD/pldram *
echo done

echo Generating squashfs
rm -rf $CD/pldcd
mksquashfs $SQUASHFS/ $CD/pldcd #-info
chmod 644 $CD/pldcd
cd $CD
md5sum pldcd > $CD/pldcd.md5
echo done

rmdir $ROOTFS/bin 
rmdir $ROOTFS/sbin 
rmdir $ROOTFS/lib 
rmdir $ROOTFS/usr 
rmdir $ROOTFS/boot 

mv $SQUASHFS/bin-bind $ROOTFS/bin
mv $SQUASHFS/sbin-bind $ROOTFS/sbin
mv $SQUASHFS/lib-bind $ROOTFS/lib
mv $SQUASHFS/usr-bind $ROOTFS/usr
mv $SQUASHFS/boot-bind $ROOTFS/boot
mv $SQUASHFS/* $ROOTFS/live/

rmdir $SQUASHFS
 
echo Generating pldcd.iso
rm -f $MAINDIR/pldcd.iso
cd $CD
mkisofs -J -R -V "PLD Live CD ${LIVECD_VERSION}" -o $ISODIR/pldcd.iso \
-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table .
echo done
