#!/bin/sh
# Filename:      42_grml
# Purpose:       grub-mkconfig helper script for Grml rescue systems
# Authors:       grml-team (grml.org), (c) Andreas Gredler <jimmy@grml.org>, Michael Prokop <mika@grml.org>
# Bug-Reports:   see http://grml.org/bugs/
# License:       This file is licensed under the GPL v2+.
################################################################################

set -e

prefix=/usr
exec_prefix=${prefix}
bindir=${exec_prefix}/bin
libdir=${exec_prefix}/lib
. ${libdir}/grub/grub-mkconfig_lib

# default unless configured otherwise:
ISO_LOCATION="/boot/grml"

if [ -r /etc/default/grml-rescueboot ] ; then
  . /etc/default/grml-rescueboot
fi

iso_list=""
for file in "${ISO_LOCATION}"/*.iso ; do
     if grub_file_is_not_garbage "$file" ; then
       iso_list="$iso_list $file "
     fi
done

for grmliso in $iso_list ; do
  rel_dirname="$(make_system_path_relative_to_its_root $(dirname $grmliso))"
  grml="$(basename $grmliso)"
  device="$(${grub_probe} -t device ${grmliso})"

  additional_param=""

  case "$device" in
      /dev/mapper*|/dev/md*)
      additional_param="live-media=$device"
      ;;
  esac

  echo "Found Grml ISO image: $grmliso" >&2
  title="Grml Rescue System ($grml)"

  cat << EOF
menuentry "${title}" {
$(prepare_grub_to_access_device "$device" | sed -e "s/^/        /")
        iso_path="${rel_dirname}/${grml}"
        export iso_path
        kernelopts=" $CUSTOM_BOOTOPTIONS $additional_param "
        export kernelopts
        loopback loop "${rel_dirname}/$grml"
        set root=(loop)
        configfile /boot/grub/loopback.cfg
}
EOF
done

## END OF FILE #################################################################
