#!/bin/sh
. /etc/color
. /etc/utils
. /setup/clone/generic.lib
. /setup/clone/root.lib
. /setup/clone/umsdos.lib
. /setup/clone/ext2.lib
. /setup/clone/loop.lib
. /setup/clone/boot.lib
. /setup/clone/menu.lib

#set -x


case "Z${1}Z" in
ZZ)
	menu
	;;
Z-hZ)
cat <<END
Clone $VERSION , the muLinux fs cloner (C) 2000 M. Andreoli
Usage : clone
		 install=umsdos|ext2|loop
		 boot=/dev/...
		 root=/dev/ ... 
		 loader=none|lilo|loadlin
END
	exit
	;;
*)
	SplitArgs $@
	ROOT_DEVICE=$root
	BOOT_DEVICE=$boot
	LOADER=$loader
	INSTALL=$install
	;;
esac

	required ROOT_DEVICE  
	required BOOT_DEVICE
	required LOADER

# handle special cases

case "Z${INSTALL}Z" in
ZumsdosZ|ZloopZ)
	if  [ $LOADER = lilo ] ; then 
        abort "LILO isn't allowed for $INSTALL installation."
	fi
       	;;
esac

case "Z${LOADER}Z" in
ZliloZ)
        if  [ -z "`which lilo`" ] ; then
        abort "You haven't lilo command. Missing the right addon?"
        fi
        ;;
esac


case "Z${INSTALL}Z" in
ZZ)	# no installation, only bootloader install
	REAL_ROOT=$ROOT_DEVICE
	eval install_${LOADER}
	;;
*)
	REAL_ROOT=`get_real_root`
	required REAL_ROOT
	report
	eval ${INSTALL}_init; clone_root; eval ${INSTALL}_end
	eval install_${LOADER}
	;;
esac


msg "Done"

# The End
