#!/usr/bin/env bash

all=0

while read -r line; do
    if [[ $line != */vmlinuz ]]; then
        # triggers when it's a change to usr/lib/initcpio/*
        all=1
        continue
    fi

    if ! read -r pkgbase > /dev/null 2>&1 < "${line%/vmlinuz}/pkgbase"; then
        # if the kernel has no pkgbase, we skip it
        continue
    fi

    # parse the input
    version=$(basename "${line%/vmlinuz}")
	vmlinuz="/${line}"
    packagename=$(cat ${line%/vmlinuz}/pkgbase)

    /usr/bin/gen-mkinitcpio-preset ${version} ${vmlinuz} ${packagename}

done

if [[ $all == 1 ]]; then
    # Run gen-mkinitcpio-preset for all the installed kernels
    while read -r pkgbasefile; do
        version=$(basename "${pkgbasefile%/pkgbase}")
        vmlinuz="${pkgbasefile%/pkgbase}/vmlinuz"
        packagename=$(cat ${pkgbasefile})
        /usr/bin/gen-mkinitcpio-preset ${version} ${vmlinuz} ${packagename}
    done < <(find /usr/lib/modules -maxdepth 2 -type f -name pkgbase)
fi


