#!/bin/sh

# To be included by each scripts for parsing

# Figure out the LVM name from dtc-xen.conf
LVMNAME=`dtc-xen-volgroup`
if [ -z "$LVMNAME" ] ; then
	echo "Could not determine volume group from which to provision the volume" 1>&2
	echo "You might want to set provisioning_volgroup in dtc-xen.conf" 1>&2
	exit 78
fi
FSTAB_LVMNAME=`echo ${LVMNAME} | sed -e 's/-/--/g'`


NUM_NIC=0
for i in $@ ; do
	case "${1}" in
	"-path")
		VPS_PATH="${2}"
		shift
		shift
		;;
	"-ram")
		VPSMEM="${2}"
		shift
		shift
		;;
	"-os")
		DISTRO=${2}
		shift
		shift
		;;
	"--mac")
		MAC_ADDR="${2}"
		shift
		shift
		;;
	"--bridge")
		XEN_BR="${2}"
		shift
		shift
		;;
	"--maxmem")
		MAXMEM="${2}"
		shift
		shift
		;;
	"--locale")
		LOCALE="${2}"
		shift
		shift
		;;
	"--keymap")
		KEYMAP="${2}"
		shift
		shift
		;;
	"--vcpus")
		VCPUS="${2}"
		shift
		shift
		;;
	"--cpus")
		CPUS="${2}"
		shift
		shift
		;;
	"--cpucap")
		CPUCAP="${2}"
		shift
		shift
		;;
	"--cpuweight")
		CPUWEIGHT="${2}"
		shift
		shift
		;;
	"--pae")
		PAE="${2}"
		shift
		shift
		;;
	"--acpi")
		ACPI="${2}"
		shift
		shift
		;;
	"--apic")
		APIC="${2}"
		shift
		shift
		;;
	
	"-vpsid")
		VPSNUM="${2}"
                shift
                shift
                ;;
        "-nic")
		PARAM=${2}
                # Manage the nics to give it as parameters to the setup-vps-network script
                if [ "${NUM_NIC}" = 0 ] ; then
                        ALL_IPADDRS=`echo ${PARAM} | cut -d"," -f1`
			FIRST_IP=`echo ${PARAM} | cut -s -d"," -f1`
                        FW_NICS_CMD="-nic ${PARAM}"
                        NICS=${PARAM}
                else
                        ALL_IPADDRS="${ALL_IPADDRS} "`echo ${PARAM} | cut -d"," -f1`
                        FW_NICS_CMD="${FW_NICS_CMD} -nic ${PARAM}"
                        NICS=$NICS"
"${PARAM}
                fi
                NUM_NIC=$(( ${NUM_NIC} + 1 ))
                shift
                shift
                ;;
	"-gw")
		GATEWAY="$2"
		shift
		shift
		;;
	"--vps-fqdn")
		VPS_FQDN="$2"
		shift
		shift
		;;
	"--vps-domain")
		VPS_DOMAIN="$2"
		shift
		shift
		;;
	"--node-fqdn")
		NODE_FQDN="$2"
		shift
		shift
		;;
	"-dns")
		DNS=${2}
		shift
		shift
		;;
	"--virt-type")
		VIRT_TYPE=${2}
		shift
		shift
		;;
	"--kernel")
		KERNELPATH="$2"
                shift
                shift
                ;;
        "--kernel-release")
                KERNEL_RELEASE=${2}
                shift
                shift
                ;;
	"--kmod-path")
		KMOD_PATH="${2}"
		shift
		shift
		;;
	"--initrd")
		INITRDPATH="${2}"
		shift
		shift
		;;
	"--vnc-pass")
		VNC_PASSWORD="${2}"
		shift
		shift
		;;
	"--boot-iso")
		BOOT_ISO="${2}"
		shift
		shift
		;;
	"--disk-type")
		IMAGE_TYPE="${2}"
		shift
		shift
		;;
	"--lvm-name")
		LVMNAME="${2}"
		shift
		shift
		;;
	"--xen-domu-hdd-dev-type")
		XEN_DOMU_HDD_DEV_TYPE="${2}"
		shift
		shift
		;;
	"--xenu_extra_parm")
		XENU_EXTRA_PARM="${2}"
		shift
		shift
		;;
	esac
done

# Calculate the command line to forward between scripts
HVM_PARMS=""
if [ -z "${VNC_PASSWORD}" ] ; then
	HVM_PARMS="--vnc-pass ${VNC_PASSWORD}"
fi
if [ -z "${BOOT_ISO}" ] ; then
	HVM_PARMS="${HVM_PARMS} --boot-iso ${BOOT_ISO}"
fi

KERNEL_P="--kernel ${KERNELPATH} --kernel-release ${KERNEL_RELEASE} --kmod-path ${KMOD_PATH} --initrd ${INITRDPATH}"
FW_PARAMS="--disk-type ${IMAGE_TYPE} --xen-domu-hdd-dev-type ${XEN_DOMU_HDD_DEV_TYPE} -path ${VPS_PATH} -ram ${VPSMEM} -vpsid ${VPSNUM} --vps-fqdn ${VPS_FQDN} --vps-domain ${VPS_DOMAIN} --node-fqdn ${NODE_FQDN} ${FW_NICS_CMD} -dns ${DNS} -gw ${GATEWAY} --virt-type ${VIRT_TYPE} ${KERNEL_P}"
if [ -n "${MAC_ADDR}" ] ; then
	FW_PARAMS="${FW_PARAMS} --mac ${MAC_ADDR}"
fi
if [ -n "${XEN_BR}" ] ; then
	FW_PARAMS="${FW_PARAMS} --bridge ${XEN_BR}"
fi
if [ -z "${HVM_PARMS}" ] ; then
	FW_PARAMS="${FW_PARAMS} ${HVM_PARMS}"
fi
if [ -z "${LVMNAME}" ] ; then
	FW_PARAMS="${FW_PARAMS} --lvm-name ${LVMNAME}"
fi
if [ -n "${XENU_EXTRA_PARM}" ] ; then
	FW_PARAMS="${FW_PARAMS} --xenu_extra_parm ${XENU_EXTRA_PARM}"
fi
