#!/usr/local/bin/cbsd
#v11.0.16
CBSDMODULE="bhyve"
MYARG=""
MYOPTARG="jname mode editor"
MYDESC="Show or modify jail description"
ADDHELP="mode=update for update information\n\
jname - specify jname\n\
editor=mcedit for altrnative editor\n"
EXTHELP="wf_jdescr.html"

. ${subr}
. ${strings}

init $*

showdescr()
{
	SYSDIR="${jailsysdir}/${jname}"
	PDESCR="${SYSDIR}/descr"

	if [ "${mode}" = "update" ]; then
		[ ! -d "${SYSDIR}" ] && /bin/mkdir -m 0775 -p ${SYSDIR}
		/usr/bin/touch ${PDESCR} && /usr/sbin/chown ${cbsduser}:${cbsduser} ${PDESCR}
		cbsdlogger NOTICE ${CBSD_APP}: edit domain description for: ${jname}
		${editor} "${PDESCR}"
	else
		[ -f "${PDESCR}" ] && /bin/cat ${PDESCR}
	fi
}

showall()
{
	local jname

	2>/dev/null cbsdsql local SELECT jname FROM jails WHERE emulator=\"bhyve\" ORDER BY jname ASC | while read jname; do
		[ -z "${jname}" ] && continue
		${ECHO} "${BOLD}${jname} {${NORMAL}"
		showdescr
		${ECHO} "${BOLD}}${NORMAL}"
	done
}

[ -z "${editor}" ] && editor="nvi"

if [ -z "${jname}" ]; then
	showall
else
	. ${jrcconf}
	[ $? -eq 1 ] && err 1 "${MAGENTA}No such jail: ${GREEN}${jname}${NORMAL}"
	showdescr
fi
