#!/usr/local/bin/cbsd
#v11.1.16
MYARG="arch ver stable"
MYOPTARG="platform target_arch"
MYDESC="Register bases for jails in the databases"
CBSDMODULE="build"

. ${subr}
init $*

. ${tools}
. ${strings}
. ${system}

[ -z "${target_arch}" ] && target_arch="${arch}"
if [ -z "${stable}" ]; then
	strpos --str="${ver}" --search="."
	# auto-detect for stable/release
	pos=$?
	if [ ${pos} -eq 0 ]; then
		stable=1
	else
		stable=0
	fi
fi

. ${workdir}/universe.subr

init_basedir

[ ! -x "${BASE_DIR}/bin/sh" ] && err 1 "${MAGENTA}No such bases here: ${GREEN}${BASE_DIR}${NORMAL}"

baseelf=$( ${miscdir}/elf_tables --ver ${BASE_DIR}/bin/sh 2>/dev/null )

idx=$( get_baseidx -a ${arch} -p ${platform} -s ${stable} -t ${target_arch} -v ${ver} )

if [ -n "${idx}" ]; then
	cbsdsql local "UPDATE bsdbase SET elf=\"${baseelf}\",date=datetime('now','localtime') WHERE idx=\"${idx}\""
	dt="$( cbsdsql local SELECT date FROM bsdbase WHERE elf=\"${baseelf}\" AND idx=\"${idx}\" )"
	date=$( /bin/date -j -f "%Y-%m-%d %H:%M:%S" "${dt}" "+%s" )
	err 0 "${MAGENTA}Bases updated: ${GREEN}${BASE_DIR}${NORMAL}"
else
	cbsdsql local "INSERT INTO bsdbase ( platform,name,arch,targetarch,ver,stable,elf ) VALUES ( \"${platform}\", \"base\", \"${arch}\", \"${target_arch}\", \"${ver}\", \"${stable}\", \"${baseelf}\" )"
	err 0 "${MAGENTA}Bases registered: ${GREEN}${BASE_DIR}${NORMAL}"
fi
