#! /bin/sh

# Remove the bios_grub flag for partitions whose method is not biosgrub, and
# set it for partitions whose method is biosgrub.

. /lib/partman/lib/base.sh

dev=$1
num=$2
id=$3
size=$4
type=$5
fs=$6
path=$7
name=$8

cd $dev

if [ "$fs" = free ]; then
	exit 0
fi

method=
if [ -f "$id/method" ]; then
	method="$(cat "$id/method")"
fi

has_biosgrub=no
flags=''
open_dialog GET_FLAGS "$id"
while { read_line flag; [ "$flag" ]; }; do
	if [ "$flag" != bios_grub ]; then
		flags="${flags:+$flags$NL}$flag"
	else
		has_biosgrub=yes
	fi
done
close_dialog

if [ "$method" = biosgrub ] && [ "$has_biosgrub" = no ]; then
	open_dialog SET_FLAGS "$id"
	write_line "$flags"
	write_line bios_grub
	write_line NO_MORE
	close_dialog
elif [ "$method" != biosgrub ] && [ "$has_biosgrub" = yes ]; then
	open_dialog SET_FLAGS "$id"
	write_line "$flags"
	write_line NO_MORE
	close_dialog
fi
