insmod part_msdos
insmod part_gpt
insmod search
insmod configfile
insmod legacy_configfile

set debian_cddev=""
set debian_cdarch=""
if [ "${grub_cpu}" = "x86_64" ]; then
    debian_cdarch="amd" 
fi
if [ "${grub_cpu}" = "i386" ]; then
    debian_cdarch="i386" 
fi
if [ -n "${debian_cdarch}" ]; then
    set debian_kern="/install.${debian_cdarch}/xen/vmlinuz"
    set debian_initrd="/install.${debian_cdarch}/xen/initrd.gz"
    search -s debian_domUcfg -f "/install.${debian_cdarch}/xen/debian.cfg"
    search -s debian_cdkern -f "${debian_kern}"
    search -s debian_cdinitrd -f "${debian_initrd}"
    if [ -n "${debian_domUcfg}" -a -n "${debian_cdinitrd}" -a -n "${debian_cdkern}" -a "${debian_domUcfg}" = "${debian_cdinitrd}" -a "${debian_domUcfg}" = "${debian_cdkern}" ]; then
        debian_cddev="${debian_domUcfg}"
    fi
fi

set fedora_cddev=""
if [ "${grub_cpu}" = "x86_64" ]; then
    set fedora_kern="/images/pxeboot/vmlinuz"
    set fedora_initrd="/images/pxeboot/initrd.img"
    search -s fedora_cdkern -f "${fedora_kern}"
    search -s fedora_cdinitrd -f "${fedora_initrd}"
    if [ -n "${fedora_cdkern}" -a -n "${fedora_cdinitrd}" -a "${fedora_cdkern}" = "${fedora_cdinitrd}" ]; then
        set fedora_cddev="${fedora_cdkern}"
    fi
fi

set suse_cddev=""
search -s suse_cddev_content -f "/content"
search -s suse_cddev_product -f "/media.1/products"
if [ -n "${suse_cddev_content}" -a -n "${suse_cddev_product}" -a "${suse_cddev_content}" = "${suse_cddev_product}" ]; then
    set suse_cddev="${suse_cddev_content}"
fi

set hdcfg_list="\
/boot/grub2/grub.cfg \
/@/boot/grub2/grub.cfg \
/@/.snapshots/1/snapshot/boot/grub2/grub.cfg \
/.snapshots/1/snapshot/boot/grub2/grub.cfg \
/grub2/grub.cfg\
"

set hdlst_list="\
/boot/grub/menu.lst \
/grub/menu.lst\
"

for c in ${hdcfg_list}; do
    if search -s hddev -f "${c}"; then
        menuentry "${hddev} Boot From Hard Disk (${c})" "${hddev}" "${c}" {
            set root="${2}"
            set cfg="${3}"
            configfile "${cfg}"
        }
        break
    fi
done

for c in ${hdlst_list}; do
    if search -s hddev -f "${c}"; then
        menuentry "${hddev} Boot From Hard Disk (${c})" "${hddev}" "${c}" {
            set root="${2}"
            set cfg="${3}"
            legacy_configfile "${cfg}"
        }
        break
    fi
done

set timeout=0
if [ -n "${debian_cddev}" ]; then
    set timeout=8
    menuentry "${debian_cddev} Debian Install" {
        set root="${debian_cddev}"
        linux "${debian_kern}" ignore_loglevel
        initrd "${debian_initrd}"
    }
fi

if [ -n "${fedora_cddev}" ]; then
    set timeout=8
    menuentry "${fedora_cddev} Fedora Install" {
        set root="${fedora_cddev}"
        linux "${fedora_kern}" ignore_loglevel
        initrd "${fedora_initrd}"
    }
    menuentry "${fedora_cddev} Fedora Rescue" {
        set root="${fedora_cddev}"
        linux "${fedora_kern}" ignore_loglevel rescue
        initrd "${fedora_initrd}"
    }
fi

if [ -n "${suse_cddev}" ]; then
    if [ "${grub_cpu}" = "i386" ]; then
        set suse_cdarch="i586" 
    else
        set suse_cdarch="${grub_cpu}" 
    fi
    set timeout=8
    set root="${suse_cddev}"
    set suse_cdcfg="/boot/${suse_cdarch}/grub2-xen/grub.cfg"
    set suse_cdkern="/boot/${suse_cdarch}/vmlinuz-xen"
    set suse_cdinitrd="/boot/${suse_cdarch}/initrd-xen"
    if [ -f "${suse_cdcfg}" ]; then
        menuentry "${suse_cddev} SUSE Install menu" {
        set root="${suse_cddev}"
        configfile "${suse_cdcfg}"
        }
    elif [ -f "${suse_cdkern}" -a -f "$suse_cdinitrd" ]; then
        menuentry "${suse_cddev} SUSE Install" {
            linux "${suse_cdkern}" linemode=1 xencons=hvc0 
            initrd "${suse_cdinitrd}"
        }
        menuentry "${suse_cddev} SUSE Rescue" {
            linux "${suse_cdkern}" linemode=1 xencons=hvc0 rescue=1
            initrd "${suse_cdinitrd}"
        }
        menuentry "${suse_cddev} SUSE Upgrade" {
            linux "${suse_cdkern}" linemode=1 xencons=hvc0 upgrade=1
            initrd "${suse_cdinitrd}"
        }
    else
        echo "the device ${suse_cddev} is not xen pv bootable"
    fi
fi