#! /bin/sh

. /lib/partman/lib/base.sh

for dev in $DEVICES/*; do
	[ -d "$dev" ] || continue
	cd $dev
	partitions=
	open_dialog PARTITIONS
	while { read_line num id size type fs path name; [ "$id" ]; }; do
		[ "$fs" != free ] || continue
		[ -s "$id/label" ] || continue
		partitions="${partitions:+$partitions
}$(cat "$id/label") $path"
	done
	close_dialog
	partitions="$(echo "$partitions" | sort)"

	oldlabel=
	oldpath=
	IFS="$NL"
	for partition in $partitions; do
		restore_ifs
		label="${partition% *}"
		path="${partition##* }"
		if [ "$label" = "$oldlabel" ]; then
			db_subst partman-target/same_label PART1 "$(humandev "$oldpath")"
			db_subst partman-target/same_label PART2 "$(humandev "$path")"
			db_subst partman-target/same_label LABEL "$label"
			db_capb align
			db_input critical partman-target/same_label || true
			db_go || true
			db_capb backup align
			exit 1
		else
			oldlabel="$label"
			oldpath="$path"
		fi
		IFS="$NL"
	done
	restore_ifs
done

exit 0
