#!/bin/bash -efu

. 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

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

guess_feature mdadm

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

guess_variable GENERATE_UDEV_RULES_FOR_MD_DEVICE "$MAJOR:$MINOR"
