#!/bin/sh

write_grub() {
cat <<EOF
menuentry '${T} | ${K}' {
        savedefault
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='${D},gpt${PNUM}'
        echo    'caricamento linux ${K}...'
        linux   /boot/${K} root=${P} ro
EOF
[ ! "x$I" = "x" ] && echo "        initrd   /boot/$I"
echo "}"
}

add_entry() {
	#Usage :
	#       add_entry <'T i t l e'> <disk-number-from-zeroi-hd*> <root-partition-/dev/sd*> <kernel-name> <initrd-name>
	T=$1
	D=$2
	P=$3
	K=$4
	I=$5
	PNUM=${P:8:1}
	write_grub
}

# Example:
#         add_entry <'T i t l e'> <disk-number-from-zeroi-hd*> <root-partition-/dev/sd*> <kernel-name> <initrd-name>

add_entry 'Slackware Linux - Current' hd0 /dev/sda3 kernel-5.4.10_hand initrd-5.4.10.img
add_entry 'Slackware Linux - Current' hd0 /dev/sda3 kernel-5.5 initrd-5.5.img
add_entry 'Arch' hd0 /dev/sda4 linux-rebuilt initrd-5.4.8
