#!/usr/local/bin/cbsd
#v10.1.0
MYARG="scene"
MYOPTARG="ver arch"
MYDESC="Make jail by scenario file"

. ${subrdir}/nc.subr

. ${cbsdinit}

. ${system}

[ ! -f "${scene}" ] && err 1 "No such scene file"

over=$ver
oarch=$arch

. ${scene}
. ${subrdir}/build.subr

SCENEDIR=$( dirname ${scene} )
JCONF=$( find ${SCENEDIR} -depth 1 -maxdepth 1 -name *.jconf -exec realpath {} \; )

[ ! -f "${JCONF}" ] && err 1 "No jconf ${JCONF}"

pkgfile="${ftmpdir}/${jname}.$$"
workjconf="${ftmpdir}/${jname}.$$.jconf"

#replace CBSD_WORKDIR if exist
sed s:CBSD_WORKDIR:${workdir}:g ${JCONF} > ${workjconf}

/usr/local/cbsd/misc/cbsdsysrc -qf ${workjconf} ver="${ver}" > /dev/null
/usr/local/cbsd/misc/cbsdsysrc -qf ${workjconf} arch="${arch}" > /dev/null
#/usr/local/cbsd/misc/cbsdsysrc -qf ${workjconf} pkglist="${pkgfile}" > /dev/null
. ${workjconf}
/usr/local/cbsd/misc/cbsdsysrc -qf ${workjconf} packagesite="${packagesite}" > /dev/null

ADDFLAGS=""

[ -n "${fstablocal}" ] && ADDFLAGS="${ADDFLAGS} fstablocal=${fstablocal}"
[ -n "${customskel}" ] && ADDFLAGS="${ADDFLAGS} customskel=${customskel}"

jcreate jconf=${workjconf} ${ADDFLAGS} removejconf=1 delpkglist=0

# system dir
if [ -d "${etcdir}/scenes/${jname}" ]; then
	[ -d "${jailsysdir}/${jname}" ] && rm -rf "${jailsysdir}/${jname}"
	cp -Rp ${etcdir}/scenes/${jname} ${jailsysdir}/${jname}
fi

if [ -f "${etcdir}/scenes/${jname}/${jname}-descr" ]; then
	[ ! -d "${jailsysdir}/${jname}" ] && mkdir ${jailsysdir}/${jname}
	cp ${etcdir}/scenes/${jname}/${jname}-descr ${jailsysdir}/${jname}/descr
fi

. ${subrdir}/rcconf.subr

#Overwrite skel files
SKELDIR="${etcdir}/scenes/${jname}/skel"

#test for zfs mounted & mount if not
case $zfsfeat in
	1)
		. ${subrdir}/zfs.subr
		zfsmnt ${data}
		[ $? -eq 2 ] && zfs mount "${ZPOOL}"
		;;
esac

if [ -d "${SKELDIR}" ]; then
	cp -rPf ${SKELDIR}/* ${data}/
fi


if [ -f "${etcdir}/scenes/${jname}/post-install" ]; then
	cp ${etcdir}/scenes/${jname}/post-install ${data}/tmp
	/usr/sbin/chroot ${data} sh /tmp/post-install
fi
