#!/usr/bin/env bash

set -euxo pipefail

# Set variables
name="${1:-linux}"
kernel="/boot/vmlinuz-$name"
initrd="/boot/initramfs-$name.img"

# Test if required files are present
[ -f $kernel ]
[ -f $initrd ]
command -v kexec &> /dev/null

# Configure the next kernel to load
sudo kexec -l $kernel --initrd=$initrd --reuse-cmdline
# Gracefully restart on the next kernel
sudo systemctl kexec