#!/bin/bash
# e2k boot.conf generator for Rosa
# $1 - kernel for default boot item
# without args newest kernel will be default

if [ "$1" ] ; then
	defkernel="$1"
	if ! ls -1 /boot |grep -q $defkernel ; then
		echo "$defkernel not found"
		exit ${LINENO} 
	fi
fi

if ! [ -d /boot ] ; then
	echo "/boot dir not exists"
	exit ${LINENO} 
fi

pushd /boot >/dev/null
# save old boot.conf
if [ -f boot.conf ] ; then
	date=$(date +%m%d%H%M%S)
	mv boot.conf boot-$date.conf
fi

kernels=$(ls -1 |sed -n '/vmlinuz-/s/vmlinuz-//p')
[ "$defkernel" ] || defkernel="$(echo "$kernels" |rpm-sort|tail -n1)"


ROOTDEV=$(blkid $(df / |tail -n1 |cut -f1 -d ' ') -s UUID |cut -f2 -d ' '| sed 's/\"//g')
[ -z "$ROOTDEV" ] && ROOTDEV=/dev/sda1

. /etc/os-release
OS=$(echo $NAME |sed 's/\ /_/g')

header="## e2k boot.conf, generated by bootconfgen ##
## $OS
timeout=5
default=1-$OS-$defkernel
##########################################

"

first="label=1-$OS-$defkernel
	image=/vmlinuz-$defkernel
	initrd=/initrd-${defkernel}.img
	cmdline=root=$ROOTDEV ro rhgb quiet selinux=0

"

echo "$header" > boot.conf
echo "$first" >> boot.conf

n=2
for krn in $kernels ; do
	[ "$krn" == "$defkernel" ] && continue
	if [ -f "initrd-${krn}.img" ] ; then
		echo "label=$n-$OS-$krn 
	image=/vmlinuz-$krn
	initrd=/initrd-${krn}.img
	cmdline=root=$ROOTDEV ro rhgb quiet selinux=0

" >> boot.conf
	else
		echo "skip: $krn"
		continue
	fi
	n=$(( $n +1 ))
done
popd >/dev/null

