#!/usr/local/bin/cbsd
#v10.0.4
globalconf="${distdir}/cbsd.conf";
CBSDMODULE="virtualbox"
MYARG="jname"
MYOPTARG="mode"
MYDESC="Configure for Virtualbox"
ADDHELP="mode=list for list of jails external command\n"
EXTHELP="wf_jconfig"

set -e
. ${globalconf}
set +e

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

[ -z "${1}" ] && select_jail_by_list -s "List of local VMs" -e vls -a "Off|On"

. ${cbsdinit}

shift  # todo: jname and cmd may have reverse order

. ${subrdir}/rcconf.subr
[ $? -eq 1 ] && err 1 "${N1_COLOR}No such jail: ${N2_COLOR}${jname}${N0_COLOR}"
[ "${emulator}" != "virtualbox" ] && err 1 "${N1_COLOR}Only for virtualbox type VMs${N0_COLOR}"

CMDDIR="${jailsysdir}/${jname}/bin/"

if [ "${mode}" = "list" ]; then
	${ECHO} "${N1_COLOR}Configure command available: ${N2_COLOR}jconfig jname=${jname} <cmd>:${N0_COLOR}"
	[ -d "${CMDDIR}" ] && find ${CMDDIR} -type f -depth 1 -maxdepth 1 -exec basename {} \;
	exit 0
fi

[ -z "${cmd}" ] && cmd=${1}

shift
cfgargs="$@"

if [ -z "${cmd}" ]; then
	vsetup-tui jname=${jname} vm_ram vm_cpus vm_vnc_port vm_hostbridge astart interface vm_boot vm_iso_path
elif [ -f "${CMDDIR}${cmd}" ]; then
	. ${CMDDIR}${cmd}
	myconf ${cfgargs}
fi
