#!/bin/bash -efu
# SPDX-License-Identifier: GPL-3.0-or-later

. guess-functions

[ -d "$SYSFS_PATH$1"/md ] ||
	exit 0

level=
readline level "$SYSFS_PATH$1"/md/level

mod_names=("md-$level")

metadata_ver=
readline metadata_ver "$SYSFS_PATH$1"/md/metadata_version

if [ "${metadata_ver:0:9}" = 'external:' ]; then
	guess_variable MDADM_EXTRA_PROGS mdmon

	container_ver="${metadata_ver:9}"
	readline container_ver "${SYSFS_PATH}/class/block${container_ver%/*}/md/metadata_version"
	[ "$container_ver" = 'external:imsm' ] && mod_names+=(efivarfs)
fi

if [ -n "${RESOLVE_MODALIAS-}" ]; then
	depinfo \
			--set-version="$kernel" \
			--no-builtin \
			--no-prefix \
			--no-firmware \
			"${mod_names[@]}" 2>/dev/null |
		sort -u |
	while read -r mod; do
		guess_module "$mod"
	done
else
	for mod in "${mod_names[@]}"; do
		guess_modalias "$mod"
	done
fi

guess_feature mdadm

MAJOR=
MINOR=
. "$SYSFS_PATH$1"/uevent

guess_variable GENERATE_UDEV_RULES_FOR_MD_DEVICE "$MAJOR:$MINOR"
