#!/bin/sh

. /lib/partman/lib/base.sh
. /lib/partman/lib/resize.sh

dev=$2
oldid=$3

cd $dev

check_virtual

if [ "$virtual" = no ] && [ -f $oldid/detected_filesystem ]; then
	case "$(cat $oldid/detected_filesystem)" in
		ntfs)
			if ! get_ntfs_resize_range; then
				db_input critical partman-partitioning/impossible_resize || true
				db_go || true
				exit 1
			fi
			;;
		ext2|ext3)
			if ! get_ext2_resize_range; then
				db_input critical partman-partitioning/impossible_resize || true
				db_go || true
				exit 1
			fi
			;;
		*)
			get_resize_range
			;;
	esac
else
	get_resize_range
fi

if [ -z "$maxsize" ]; then
	logger -t partman "Error: unable to determine maximum new size for partition"
	db_input critical partman-partitioning/impossible_resize || true
	db_go || true
	exit 1
fi

human_resize_range

if [ "$virtual" = no ]; then
	db_set partman-partitioning/confirm_resize 'false'
	db_input critical partman-partitioning/confirm_resize || true
	db_go || exit 0
	db_get partman-partitioning/confirm_resize
	[ "$RET" = 'true' ] || exit 0
fi

ask_for_size || exit $?
exit 100
