#! /usr/bin/bash
#shell script to generate an a default grub.cfg used to do 
#boot linux 
#$1 is the Kernel version 
#----------------------------------------------------------
do_cfg()

{
VERSION_KERNEL=$1
GRUB_DIR="/boot/grub"

mkdir -p "${GRUB_DIR}"

# Génération chirurgicale du grub.cfg sans aucun outil externe
cat << EOF > "${GRUB_DIR}/grub.cfg"
set default="0"
set timeout=3

serial --unit=0 --speed=115200
terminal_input serial
terminal_output serial

menuentry "Osukiss GNU/Linux (${VERSION_KERNEL})" --class osukiss {
    set root=(hd0,gpt1)
    echo "Loading kernel ${VERSION_KERNEL}..."
    linux /vmlinuz-${VERSION_KERNEL} root=live:disk:LABEL=Osukiss-Data rw initdbg=1 console=ttyS0
    echo "Loading initramfs..."
    initrd /initramfs-${VERSION_KERNEL}.img
}
EOF
}


#----------------------------------------------------------
if [ -x "/usr/sbin/grub-mkconfig" -a -f "/proc/self/mountinfo" ] ; then
  ROOT_DEV=$(awk '$5 == "/" {print $4}' /proc/self/mountinfo)

  case "$ROOT_DEV" in
    tmpfs	|	\
    roofs	|	\
    overlay	|	\
    none	|	\
    ""		)
      #no device detected
      do_cfg $1
      ;;
    "/"		)
      /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg > /dev/null 2>&1
      ;;

    *)
      if [ -b "$ROOT_DEV" ] || [ -c "$ROOT_DEV" ]; then
        /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg > /dev/null 2>&1
	fi
      ;;
    esac
  fi
