#!/usr/local/bin/cbsd
#v10.1.2
MYARG=""
MYOPTARG="item_default"
MYDESC="Choose and return boot device"
ADDHELP="default= specify selected item"

. ${subrdir}/nc.subr

. ${cbsdinit}

. ${dialog}

f_dialog_title "$msg_system_console_configuration"
f_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
f_mustberoot_init

init_item_list()
{
	local _cmd _res

	item_list="cd hdd pxe"

	cd_desc="Boot from CD"
	hdd_desc="Boot from HDD"
	pxe_desc="Boot from Network"

	if [ -n "${item_default}" ]; then
		name="${item_default}"
		eval "selected_item_${name}=\"1\""
	fi

}

# mark service as active when it enabled
init_item_status()
{
	local _res _active

	for i in ${item_list}; do
		_active=${_res##*:}
		case "${_active}" in
			*YES)
				eval "selected_item_${i}=\"1\""
				;;
		esac
	done
}

browse_boot_list()
{
	local title=" ${product} v${myversion} "
	local btitle="$DIALOG_BACKTITLE"
	local prompt="Use menu to construct jail and create config file"
	local defaultitem=
	local hline=
	local mark
	local i _mytest

	f_dialog_default_fetch defaultitem

	local menu_list="
		'A server'		'$(curval server)'		'Specify NFS server'
	" # END-QUOTE

	inc_menu_index item_num
	menu_list="${menu_list} '${item_num} GO'	'PROCEED!'	'PROCEED!'"

	cbsd_menubox_with_help
	retval=$?

	f_dialog_data_sanitize menu_choice
	f_dialog_menutag_store "$menu_choice"
	f_dialog_default_store "$menu_choice"

	return $retval

}

### MAIN ###
init_item_list
[ "${baseonly}" != "1" ] && init_item_status

srvnum=0

while :; do
	browse_boot_list || break
	UPDATED=0

	[ -z "${mtag}" ] && exit $SUCCESS

	case "$mtag" in
		"EXIT")
			echo "selected_boot=${name}"
			f_die
			;;
		"-")
			continue
			;;
		*)
			index=${mtag%% *}
			name=${mtag##* }

			eval mark=\$selected_item_${name}

			[ "${name}" = "pxe" ] && bootmgmt_pxe

			if [ "${mark}" = "1" ];then
				eval "selected_item_${name}=\"0\""
			else
				unset_selected_item
				eval "selected_item_${name}=\"1\""
			fi
			continue
			;;
	esac

	if [ "$command" ]; then
		$BSDCFG_LIBE/$APP_DIR/$command ${USE_XDIALOG:+-X}
	fi
done

return $SUCCESS
