#!/bin/sh -e
# initramfs hook for casper

PREREQS=""

# Output pre-requisites
prereqs()
{
       echo "$PREREQS"
}

case "$1" in
    prereqs)
       prereqs
       exit 0
       ;;
esac

. /usr/share/initramfs-tools/hook-functions

manual_add_modules unionfs
manual_add_modules aufs
manual_add_modules overlay

# unionfs-fuse, if available
if [ -x /usr/bin/unionfs-fuse ]; then
    copy_exec /usr/bin/unionfs-fuse /bin
fi

# We need losetup
copy_exec /sbin/losetup /sbin

# Casper hooks
mkdir -p ${DESTDIR}/lib/casper
copy_exec /usr/share/casper/casper-reconfigure /bin
copy_exec /usr/share/casper/casper-preseed /bin
copy_exec /usr/share/casper/casper-set-selections /bin

mkdir -p ${DESTDIR}/lib/udev/rules.d
cp -p /lib/udev/rules.d/60-cdrom_id.rules ${DESTDIR}/lib/udev/rules.d/
copy_exec /lib/udev/cdrom_id /lib/udev
copy_exec /usr/bin/eject /bin
copy_exec /sbin/swapon /sbin

# cifs boot
if [ -x /sbin/mount.cifs ]; then
    copy_exec /sbin/mount.cifs /sbin
    for x in cifs md4 des_generic; do
        manual_add_modules ${x}
    done
fi

# squashfs
manual_add_modules squashfs
manual_add_modules loop

# random file system modules
manual_add_modules vfat
manual_add_modules ext3
manual_add_modules ext4
manual_add_modules btrfs
# needed for vfat. :-/
manual_add_modules nls_cp437
manual_add_modules nls_utf8
manual_add_modules nls_iso8859-1

# cdrom modules
manual_add_modules sr_mod
manual_add_modules ide-cd
manual_add_modules sbp2
manual_add_modules ohci1394

# integrity check
copy_exec /usr/lib/casper/casper-md5check /bin

cp /usr/share/initramfs-tools/scripts/casper-functions $DESTDIR/scripts
cp /usr/share/initramfs-tools/scripts/casper-helpers $DESTDIR/scripts

auto_add_modules net

if [ -e /etc/casper.conf ]; then
    mkdir -p ${DESTDIR}/etc
    cp /etc/casper.conf ${DESTDIR}/etc
fi

if [ "$CASPER_GENERATE_UUID" ]; then
    # Unique ID
    mkdir -p $DESTDIR/conf
    uuidgen -r > $DESTDIR/conf/uuid.conf
fi
