#!/bin/sh


ADDONS="`cat /setup/addons`"
in_ram=`mount| rgrep " /" | rgrep ram`


# LIBRARY


try_loop()
{
[ -d /usr/bin ] && return 0

if [ -r /startup/boot/usr.img ] ; then
        echo -n "Try mount USR as loop filesystem ... "
        (
        mkdir -p /usr
        mount -o loop /startup/boot/usr.img /usr
        ) 2>/dev/null &&  echo "mount OK" 
        [ $? -ne 0 ] && echo "fail." && return 1
        sleep 1
	setup -noconfig usr ACTION=configure
	return 0
else
	return 1
fi
}

try_single_ramdisk()
{
[ -d /usr/bin ] && return 0
n=`find_ramdisk`
# only if ramdisk_size is *very* big

if [ -r /startup/boot/usr.bz2 ] ; then
        echo -n "Try mount USR from a compressed image  ... "
        (
        mkdir -p /usr
	cat /startup/boot/usr.bz2 | bzip2 -ds > /dev/ram$n
        mount /dev/ram$n /usr
        ) 2>/dev/null &&  echo "mount OK"
        [ $? -ne 0 ] && echo "fail." && return 1
        sleep 1
	setup -noconfig usr ACTION=configure
        return 0
else
	return 1
fi
}


try_ramdisks()
{
for addon in ${ADDONS} 
do
	f=/startup/boot/${addon}.tgz
	if [ -f $f ]; then
		setup $addon from=$f ACTION=configure 
	else
		setup -noconfig $addon ACTION=unwanted 
	fi
done
return $rc
}

# Main 

[ -d /startup/init ] || return 1

try_loop || try_single_ramdisk
try_ramdisks


# End
