#!/bin/sh

. /lib/partman/lib/base.sh

has_boot=no
for dev in $DEVICES/*; do
	[ -d $dev ] || continue
	cd $dev
	open_dialog PARTITIONS
	while { read_line num id size type fs path name; [ "$id" ]; }; do
		[ $fs != free ] || continue
		[ -f "$id/method" ] || continue
		[ -f "$id/acting_filesystem" ] || continue
		[ -f "$id/mountpoint" ] || continue
		mountpoint=$(cat $id/mountpoint)
		if [ "$mountpoint" = /boot ]; then
			has_boot=yes
		fi
	done
	close_dialog
done

for dev in $DEVICES/*; do
	[ -d $dev ] || continue
	cd $dev
	open_dialog PARTITIONS
	while { read_line num id size type fs path name; [ "$id" ]; }; do
		[ $fs != free ] || continue
		[ -f "$id/method" ] || continue
		[ -f "$id/acting_filesystem" ] || continue
		[ -f "$id/mountpoint" ] || continue
		mountpoint=$(cat $id/mountpoint)
		filesystem=$(cat $id/acting_filesystem)
		case "$filesystem" in
		    reiserfs)
			# due to #249322, #255135, #258117:
			if [ "$mountpoint" = /tmp ]; then
				rm -f $id/options/noexec
			fi
			# grub and lilo (others?) fail without notail
			if [ "$mountpoint" = /boot ] || \
			   ([ "$mountpoint" = / ] && [ "$has_boot" = no ]); then
				> $id/options/notail
			fi
			options=$(get_mountoptions $dev $id)
			if [ "$mountpoint" = / ]; then
				pass=1
			else
				pass=2
			fi
			echo "$path" "$mountpoint" reiserfs $options 0 $pass
			;;
		esac
	done
	close_dialog
done
