#!/bin/sh

if ! [ -d "/boot" ]; then
	error "/boot doesn't exist!"
	exit 1
fi

# we've already checked it up above, it's impossible to fail to cd in.
# since shellcheck is simply wrong, disable it's warning here

# shellcheck disable=SC2164
cd "/boot"
wrote_kentry=false
for krn in *.krn; do
	# handle there being no matches
	[ -e "$krn" ] || continue

	fname="$(printf "%s" "$krn" | head -c -4)"
	title="$(cat "$fname.txt" 2>/dev/null)"
	if [ "$title" = "" ]; then
		warn "$fname.txt doesn't exist or is empty!  Falling back to file name."
		title="$fname"
	fi
	if [ -f "/usr/lib/wii-linux/kernel/$fname.krn" ]; then
		owner="$(pacman -Qqo "/usr/lib/wii-linux/kernel/$fname.krn" 2>/dev/null | sed 's/wii-linux-kernel-//')"
		if [ "$owner" = "" ]; then
			entryID="archpower_$fname"
		else
			entryID="archpower_$owner"
		fi
	else
		entryID="archpower_$fname"
	fi

	write_kentry "$fname" "$title" "$entryID"
	wrote_kentry=true
done

if [ "$wrote_kentry" != "true" ]; then
	warn "No valid kernels found, continuing anyways."
fi
unset wrote_kentry

cd - > /dev/null 2>&1
