#!/bin/sh -e

ARCH=`dpkg --print-architecture`
PROGNAME=make-autoinst-initrd
cwd=`pwd`

if [ "$1" = "--arch" ]; then
    ARCH=$2
    shift 2
fi

if [ "$#" -ne 1 ]; then
    echo >&2 "usage: $PROGNAME [--arch arch] kernel_package"
    exit 1
fi

kernelpackage=$1

if [ ! -e $kernelpackage ]; then
    echo >&2 "$PROGNAME: $kernelpackage not found"
    exit 1
fi

TMPPATH=${TMPDIR:-/tmp}/installer.$$
if ! mkdir -m 0700 $TMPPATH; then
    echo >&2 "$PROGNAME: unable to create temporary directory '$TMPPATH'"
    exit 1
fi

dd if=/dev/zero of=$TMPPATH/initrd bs=1024 count=4096
/sbin/mke2fs -Fq -N 2048 $TMPPATH/initrd

mkdir $TMPPATH/mnt
mount -o loop $TMPPATH/initrd $TMPPATH/mnt

cd $TMPPATH/mnt
mkdir bin dev etc lib
mkdir lib/python1.5
ln -s bin sbin
ln -s . usr

(cd dev; /dev/MAKEDEV std console fd0 hda hdb hdc hdd sda sdb sdc sdd scd)

#cp -r $cwd/binaries/* .
tar xzf /usr/lib/autoinstall/$ARCH/initrd-bin.tar.gz

#if [ "$1" = "--interactive" ]; then
#    cp $cwd/interactive/installer* bin
#fi

dpkg --extract $kernelpackage $TMPPATH/kernel
kernelversion=`ls $TMPPATH/kernel/lib/modules`
/usr/lib/autoinstall/depmod.pl \
    -F $TMPPATH/kernel/boot/System.map-$kernelversion \
    -B $TMPPATH/kernel/lib/modules \
    > $TMPPATH/kernel/lib/modules/$kernelversion/modules.dep \
    2>/dev/null

(cd lib; /usr/lib/autoinstall/mkmodules --scsi --net --confdir=$cwd/conf --kerneldir=$TMPPATH/kernel)

cp $TMPPATH/kernel/boot/vmlinuz* $cwd/linux
rm -rf $TMPPATH/kernel

cp /usr/lib/autoinstall/linuxrc .
chmod +x linuxrc

if [ -e $cwd/conf/scsip1.lst ]; then
    cp $cwd/conf/scsip1.lst etc
fi

/usr/lib/autoinstall/$ARCH/make-autoinst-initrd $TMPPATH/mnt

cd $cwd
umount $TMPPATH/mnt && rm -rf $TMPPATH/mnt
gzip -9 $TMPPATH/initrd
rm -f initrd.gz
cp $TMPPATH/initrd.gz .
rm $TMPPATH/initrd.gz
rmdir $TMPPATH

exit 0

# vim:ai:et:sts=4:sw=4:tw=0:
