#!/usr/bin/env bash
# Remove old kernels, keeping only the latest installed version
set -euo pipefail

if ! old_kernels_output=$(dnf repoquery --installonly --latest-limit=-1 -q 2>&1); then
    echo "ERROR: dnf repoquery failed: $old_kernels_output" >&2
    exit 1
fi

old_kernels=($old_kernels_output)

if [ "${#old_kernels[@]}" -eq 0 ]; then
    echo "No old kernels found"
    exit 0
fi

echo "Removing ${#old_kernels[@]} old kernel(s)..."
if ! dnf remove "${old_kernels[@]}"; then
    echo "Failed to remove old kernels" >&2
    exit 1
fi

echo "Removed old kernels"
exit 0
