#!/bin/sh

. /lib/partman/definitions.sh

dev=$2
id=$3
part=$dev/$id

cd $dev

[ -f $part/method -a -f $part/acting_filesystem ] || exit 0
filesystem=$(cat $part/acting_filesystem)

case $1 in
    mountpoint)
	select_mountpoint $dev $id
	update_partition $dev $id
	;;
    options)
	select_mountoptions $dev $id partman-ext3/options
	;;
    label)
	if [ -f $part/label ]; then
	    label=$(cat $part/label)
	elif [ -f $part/mountpoint ]; then
	    label=$(cat $part/mountpoint)
	else
	    label=''
	fi
	db_set partman-basicfilesystems/choose_label "$label"
	db_input critical partman-basicfilesystems/choose_label || true
	db_go || exit 1
	db_get partman-basicfilesystems/choose_label
	if [ "$RET" ]; then
	    echo "$RET" >$part/label
	else
	    [ ! -f $part/label ] || rm $part/label
	fi
	db_reset partman-basicfilesystems/choose_label
	;;
    reserved_for_root)
	if [ -f $part/reserved_for_root ]; then
	    reserved=$(cat $part/reserved_for_root)
	else
	    reserved=5
	fi
	db_set partman-basicfilesystems/specify_reserved "$reserved%"
	db_input critical partman-basicfilesystems/specify_reserved || true
	db_go || exit 1
	db_get partman-basicfilesystems/specify_reserved
	RET=`expr "$RET" : '\([0-9][0-9]\?\)\([,. %].*\)\?$'`
	if [ "$RET" ]; then
	    echo "$RET" >$part/reserved_for_root
	else
	    [ ! -f $part/reserved_for_root ] || rm $part/reserved_for_root
	fi
	db_reset partman-basicfilesystems/specify_reserved
	;;
    usage)
	db_metaget partman-basicfilesystems/text/typical_usage description
	typical_usage="$RET"
	if [ -f $part/usage ]; then
	    usage=$(cat $part/usage)
	else
	    usage="$typical_usage"
	fi
	db_subst partman-basicfilesystems/specify_usage CHOICES "$typical_usage, news, largefile, largefile4"
	db_set partman-basicfilesystems/specify_usage "$usage"
	db_input critical partman-basicfilesystems/specify_usage || true
	db_go || exit 1
	db_get partman-basicfilesystems/specify_usage
	if [ "$RET" != "$typical_usage" ]; then
	    echo "$RET" >$part/usage
	else
	    [ ! -f $part/usage ] || rm $part/usage
	fi
	;;
esac

exit 0
