#!/bin/bash -efu

. shell-error
. /.initrd/initenv

[ -n "${BOOT_CONFIG-}" ] ||
	fatal "config file not found"

. rdshell-sh-functions

console_lock
exec < /dev/console >/dev/console 2>&1

export NEWT_COLORS_FILE="/home/root/.newtrc"

mkdir -p /tmp/bootmenu
cd /tmp/bootmenu

setsid -c /bin/bootmenu "$BOOT_CONFIG" .

# shellcheck disable=SC2094,SC2162
read kernel < kernel

# shellcheck disable=SC2094,SC2162
read initrd < initrd

# shellcheck disable=SC2094,SC2162
read append < append

ln -sf -- "${BOOT_CONFIG%/*}" /boot

kexec \
	--load "/boot/$kernel" \
	${initrd:+--initrd="/boot/$initrd"} \
	${append:+--append="$append"}
kexec -x -e

setsid /bin/sh -l

console_unlock
