#!/bin/bash -e
# Copyright (c) 2009 Alon Swartz <alon@turnkeylinux.org> - all rights reserved
# Depends: squashfs-tools

fatal() {
    echo "fatal: $@" 1>&2
    exit 1
}

usage() {
cat<<EOF
Syntax: $(basename $0) rootfs-dir [cdroot-dir]
Prepare cdroot for ISO creation, which mainly compresses the extracted rootfs.

Environment variables:

    TKLPATCH_DEBUG       Turn on debugging. Increases verbosity.
EOF
    exit 1
}

if [[ "$#" < "1" ]]; then
    usage
fi

[ -n "$TKLPATCH_DEBUG" ] && set -x

rootfs=$1

shift 1;
cdroot=$@
if [ -z "$cdroot" ]; then
    name="$(basename $rootfs)"
    name="$(echo $name | sed 's/.rootfs$//')"
    cdroot=$name.cdroot
fi

[ -d $rootfs ] || fatal "no such directory: $rootfs"

echo "# preparing cdroot"
mkdir -p $cdroot/live
mkdir -p $cdroot/isolinux

if [ ! -f $cdroot/isolinux/isolinux.cfg ]; then
    cat>$cdroot/isolinux/isolinux.cfg<<'EOF'
DEFAULT /live/vmlinuz boot=live initrd=/live/initrd.gz ramdisk_size=1048576 root=/dev/ram rw showmounts debug toram=196 --
TIMEOUT 1
EOF
fi

cp $rootfs/usr/lib/ISOLINUX/isolinux.bin $cdroot/isolinux
cp $rootfs/usr/lib/syslinux/modules/bios/chain.c32 $cdroot/isolinux
cp $rootfs/usr/lib/syslinux/modules/bios/ldlinux.c32 $cdroot/isolinux
cp $rootfs/usr/lib/syslinux/modules/bios/libcom32.c32 $cdroot/isolinux
cp $rootfs/usr/lib/syslinux/modules/bios/vesamenu.c32 $cdroot/isolinux
cp $rootfs/usr/lib/syslinux/modules/bios/gfxboot.c32 $cdroot/isolinux
cp $rootfs/boot/$(basename $(readlink $rootfs/vmlinuz)) $cdroot/live/vmlinuz
cp $rootfs/boot/$(basename $(readlink $rootfs/initrd.img)) $cdroot/live/initrd.gz

mksquashfs $rootfs $cdroot/live/10root.squashfs -no-sparse

