#!/usr/local/bin/cbsd
#v10.1.0
CBSDMODULE="virtualbox"
MYDESC="Ncurses based control for VBOX"
MYARG="jname"
MYOPTARG=""

. ${subrdir}/nc.subr
. ${strings}
. ${tools}

[ -z "${1}" ] && select_jail_by_list -s "List of local VMs:" -r 0 -e vls
. ${cbsdinit}

. ${dialog}

dialog_menu_main()
{
	repo=0 # flags for execution jsetup-tui from repo get image

	title=" Control for ${jname} "
	hline=

	local menu_list="
		'EXIT'	'EXIT'	'Exit'
	" # END-QUOTE


	if [ ${jid} -ne 0 ]; then
			menu_list="${menu_list} 'bstop'		'stop vm'		'cbsd bstop jname=${jname}'"
			menu_list="${menu_list} 'blogin'	'attach to console'	'cbsd blogin jname=${jname}. Use Ctrl+b,d to detach (tmux)'"
		else
			menu_list="${menu_list} 'bstart'	'start vm'	'cbsd bstart jname=${jname}'"
	fi

	menu_list="${menu_list}	'bconfig'	'config'	'cbsd bconfig jname=${jname}'"
	menu_list="${menu_list}	'-'	'-'	''"
	menu_list="${menu_list}	'bremove'	'destroy vm'	'cbsd bremove jname=${jname}'"

	cbsd_menubox
	retval=$?

	# Only update default-item on success
	[ $retval -eq $DIALOG_OK ] && f_dialog_default_store "$menu_choice"

	return $retval
}

### MAIN
. ${subrdir}/rcconf.subr
[ $? -eq 1 ] && err 1 "${N1_COLOR}No such jail: ${N2_COLOR}${jname}${N0_COLOR}"

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

while [ 1 ]; do
	. ${subrdir}/rcconf.subr
	dialog_menu_main || f_die
	case "${mtag}" in
		"EXIT")
			exit 0
			;;
		bstart|bstop)
			/usr/local/bin/cbsd ${mtag} jname=${jname}
			echo " *** Complete. Press any key"
			read p
			;;
		blogin)
			/usr/local/bin/cbsd ${mtag} jname=${jname}
			;;
		bremove)
			if getyesno "Remove vm from filesystem. Are you sure ?"; then
				/usr/local/bin/cbsd ${mtag} jname=${jname}
				echo " *** Complete. Press any key"
				read p
				f_die
			fi
			;;
		"bconfig")
			/usr/local/bin/cbsd bconfig jname=${jname}
			;;
	esac
done
