#!/usr/local/bin/cbsd
#v11.0.16
CBSDMODULE="jail"
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"

unset jname

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

. ${cbsdinit}

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

	if [ "${mode}" = "update" ]; then
		[ ! -d "${SYSDIR}" ] && /bin/mkdir -m 0775 -p ${SYSDIR}
		# ensure we have rw for group ( front/UI )
		/usr/bin/touch ${PDESCR} && /usr/sbin/chown ${cbsduser}:${cbsduser} ${PDESCR}
		/bin/chmod 0660 ${PDESCR}
		${editor} "${PDESCR}"
	else
		[ -r "${PDESCR}" ] && ${CAT_CMD} ${PDESCR}
	fi
}

showall()
{
	local jname

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

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

if [ -z "${jname}" ]; then
	showall
else
	. ${subrdir}/rcconf.subr
	[ $? -eq 1 ] && err 1 "${N1_COLOR}No such jail: ${N2_COLOR}${jname}${N0_COLOR}"
	showdescr
fi
