#!/usr/local/bin/cbsd
#v12.0.4
MYARG="mode"
MYOPTARG="jname name type count cache"
MYDESC="Manage bhyve controller"
CBSDMODULE="bhyve"
EXTHELP="wf_bhyve"
ADDHELP="mode=attach,detach,list\n"

. ${subrdir}/nc.subr
. ${cbsdinit}

. ${system}
. ${subrdir}/bhyve.subr
. ${subrdir}/virtual.subr
. ${distdir}/share/bhyve/bhyve-controller.subr

ctr_attach()
{
	local _val
	for i in jname name type count cache; do
		_val=
		eval _val="\$$i"
		[ -z "${_val}" ] && err 1 "${N1_COLOR}bhyve-controller error: ${N2_COLOR}${i}= ${N1_COLOR}is mandatory${N0_COLOR}"
	done

	add_ctr -c "${count}" -n "${name}" -t "${type}" -z "${cache}"
}

ctr_detach()
{
	local _val
	for i in jname name; do
		_val=
		eval _val="\$$i"
		[ -z "${_val}" ] && err 1 "${N1_COLOR}bhyve-controller error: ${N2_COLOR}${i}= ${N1_COLOR}is mandatory${N0_COLOR}"
	done

	del_ctr -n "${name}"
}

case "${mode}" in
	attach)
		ctr_attach
		;;
	detach)
		ctr_detach
		;;
	list)
		bhyve-controller-list
		;;
	*)
		err 1 "${N1_COLOR}Unknown mode: ${N2_COLOR}${mode}${N0_COLOR}"
		;;
esac
