#!/bin/bash
[ "$1" ] || exit
grub_cfg='EFI/BOOT/grub.cfg'
[ "$1" ] && ISO=$(realpath $1)
OEM_ISO=$(echo $ISO |sed 's/\.iso$/.oem.iso/')
ISO_MP=$(realpath ./ISO_MP)
ISO_ROOT=$(realpath ./ISO_ROOT)

clear() {
    (umount "$ISO_MP" || umount -l "$ISO_MP"
    rmdir "$ISO_MP"
    rm -rf "$ISO_ROOT") 2>/dev/null
}

trap 'clear' EXIT

mkdir -p "$ISO_MP" "$ISO_ROOT"
mount -o loop "$ISO" "$ISO_MP"
cp -fr ${ISO_MP}/* ${ISO_ROOT}/
umount "$ISO_MP"
LABEL="$(sed -n '/root=live:LABEL=/s/\(^.*root=live:LABEL=\)\(\S\+\)\(.*$\)/\2/1p' ${ISO_ROOT}/$grub_cfg |head -n1)"
echo "ISO label: $LABEL"

sed -ni '1,/'$LABEL'/p'  "${ISO_ROOT}/$grub_cfg"

cat << "EOF" >> "${ISO_ROOT}/$grub_cfg"

set timeout=3
set default=0

menuentry "$installer $OS" --class rosa --class gnu-linux --class gnu --class os {
    linux /vmlinuz0 root=live:LABEL=@LABEL@ ro rd.live.image quiet rhgb oem.install rhgb splash=silent logo.nologo  inst.lang=$lang_utf locale.LANG=$lang_utf locale.LANGUAGE=$lang_utf
        echo "$loading /vmlinuz0..."
    initrd /initrd0.img
        echo "$loading /initrd0.img..."
}

menuentry "$OS live" --class rosa --class gnu-linux --class gnu --class os {
    linux /vmlinuz0 root=live:LABEL=@LABEL@ ro rd.live.image quiet  rhgb  rhgb splash=silent logo.nologo  inst.lang=$lang_utf locale.LANG=$lang_utf locale.LANGUAGE=$lang_utf
        echo "$loading /vmlinuz0..."
    initrd /initrd0.img
        echo "$loading /initrd0.img..."
}

menuentry "$backToLang" --hotkey 'f2' --id 'lang' {
    configfile ${prefix}/lang.cfg
}
menuentry  "$reboot" {
    reboot
}
EOF

sed -i 's/@LABEL@/'$LABEL'/g' "${ISO_ROOT}/$grub_cfg"

echo "
Ready to Build ISO. You may add:
- oem-install.cfg
- anaconda-ks.cfg
- oem-install.css 
in the root of $ISO_ROOT/
than push ENTER to build.
"
read qqq
pushd "${ISO_ROOT}"
 ./mkiso
 mv "$(basename $ISO)" "$OEM_ISO"
popd
