#!/usr/local/bin/cbsd
#v15.0.5
CIXARG="file"
CIXOPTARG=""
MYDESC="Create empty bhyve VM sqlite3 file"
ADDHELP="
${H3_COLOR}Description${N0_COLOR}:

 Create empty SQLite3 structure for bhyve VM

${H3_COLOR}Options${N0_COLOR}:

 ${N2_COLOR}file - destination file

${H3_COLOR}Examples${N0_COLOR}:

 # cbsd bsqlite-cache-create file=/tmp/bhyve.sqlite

"

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

[ -z "${CIX_BIN}" ] && CIX_BIN="/usr/local/bin/cbsd"
_tmpfile="${file}.$$"
[ -r "${_tmpfile}" ] && ${RM_CMD} -f ${_tmpfile}
${TOUCH_CMD} ${_tmpfile}
_ret=$?
[ ${_ret} -ne 0 ] && err 1 "${W1_COLOR}${CIX_APP} error: ${N1_COLOR}unable to write: ${N2_COLOR}${_tmpfile}${N0_COLOR}"

${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyvedsk.schema bhyvedsk
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyve-dskcontroller.schema bhyve_dskcontroller
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyve-nvme.schema bhyve_nvme
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyvenic.schema bhyvenic
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-p9shares.schema p9shares
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyve-pcibus.schema pcibus
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyve-pcibus.schema pcibus_run
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyve-cpu_topology.schema cpu_topology
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyve-settings.schema settings
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyve-soundhw.schema bhyve_soundhw
${CIX_BIN} ${miscdir}/updatesql ${_tmpfile} ${CIX_DISTDIR}/share/local-bhyve-lpc.schema lpc
${miscdir}/sqlcli ${_tmpfile} "INSERT INTO 'lpc' ( 'lpcslot_name', 'lpcslot_desc', 'lpcslot_value' ) VALUES ( 'bootrom', 'bootrom device', '${CIX_DISTDIR}/upgrade/patch/efi.fd' ), ( 'com1', 'com1 device', 'stdio' ), ( 'com2', 'com2 device', '0' ), ( 'com3', 'com3 device', '0' ), ( 'com4', 'com4 device', '0' ), ( 'tpm', 'TPM device', '0' );"
${miscdir}/sqlcli ${_tmpfile} "INSERT INTO bhyve_soundhw ( soundhw_play, soundhw_rec ) VALUES ( '/dev/dsp', '/dev/dsp' )"

# atomic rename
${MV_CMD} ${_tmpfile} ${file}
_ret=$?
[ ${_ret} -ne 0 ] && err 1 "${W1_COLOR}${CIX_APP} error: ${N1_COLOR}unable to write: ${N2_COLOR}${_tmpfile}${N0_COLOR}"

exit 0
