#!/usr/bin/env bash
# bump dist-kernels -bin variants
# (c) 2022-2026 Michał Górny <mgorny@gentoo.org>
# SPDX-License-Identifier: GPL-2.0-or-later

set -x -e

scriptdir=${BASH_SOURCE%/*}
distdir=$(portageq distdir)
cd "$(git rev-parse --show-toplevel)"

if [[ ${#} -eq 0 ]]; then
	set -- $("${scriptdir}"/get-kernel-slots)
fi

for arg; do
	if [[ ${arg} == *:* ]]; then
		old=${arg%:*}
		new=${arg#*:}
	else
		old=${arg}*
		new=+1
	fi

	for pkg in gentoo-kernel-bin; do
		(
			cd sys-kernel/${pkg}
			oldk=${pkg}-${old}.ebuild
			newk=${new}
			if [[ ${newk} != +* ]]; then
				newk=${pkg}-${newk}.ebuild
			fi
			"${scriptdir}"/pkgbump -D -M "${oldk}" "${newk}"

			new=$(<.pkgbump-pv)
			newk=${pkg}-${new}.ebuild
			[[ ${old%_p*} != ${new%_p*} ]] &&
				sed -i -e "s:^\(SHA256SUM_DATE=\).*:\1$(date +%Y%m%d):" "${newk}"

			for arch in amd64 arm64 ppc64le x86; do
				match=(
					${BINPKG:-~/binpkg}/${arch}/kernel/sys-kernel/${pkg%-bin}/${pkg%-bin}-${new}*.gpkg.tar
				)
				[[ ${#match[@]} -eq 1 ]]

				fn=${match##*/}
				cp "${match}" "${distdir}/${fn/.gpkg.tar/.${arch}.gpkg.tar}"
			done

			${EDITOR:-vim} "${newk}"
			GENTOO_MIRRORS= ebuild "${newk}" manifest

			git add Manifest "${newk}"
			"${scriptdir}"/pkgcommit -sS . --bump
		)
	done

	shift 2
done
