#!/bin/sh
# Sub-tests that require a mounted partition.
. /usr/share/os-prober/common.sh
set -e

partition=$1

tmpmnt=/var/lib/os-prober/mount
if [ ! -d $tmpmnt ]; then
	mkdir $tmpmnt
fi

for type in $(grep -v nodev /proc/filesystems); do
	if mount -o ro -t $type $partition $tmpmnt 2>/dev/null; then
		mountboot="$(linux_mount_boot "$partition" "$tmpmnt")"
		bootpart="${mountboot%% *}"
		mounted="${mountboot#* }"
		
		for test in /usr/lib/linux-boot-probes/mounted/*; do
			if [ -f $test ] && [ -x $test ]; then
				debug "running $test $partition $bootpart $tmpmnt $type"
				if $test $partition $bootpart $tmpmnt $type; then
					debug "$test succeeded"
					repeat_umount $tmpmnt/boot 2>/dev/null || true 	
					repeat_umount $tmpmnt
					rmdir $tmpmnt || true
					exit 0
				fi
			fi
		done
		
		repeat_umount $tmpmnt/boot 2>/dev/null || true 	
		repeat_umount $tmpmnt

		break
	fi
done

rmdir $tmpmnt || true

# No tests found anything.
exit 1
