#!/usr/local/bin/cbsd
#v11.1.16
globalconf="${workdir}/cbsd.conf";
CBSDMODULE="build"
MYARG=""
MYOPTARG="ver arch target_arch basename stable"
MYDESC="Remove base dir"
ADDHELP="ver=9_1 for 9.1 ver=. for current.\n\
stable=1 for RELENG_X\n"

set -e
. ${globalconf}
set +e

. ${subr}
. ${system}

readconf buildworld.conf
. ${workdir}/universe.subr

init $*
[ -z "${cbsd_queue_name}" ] && cbsd_queue_name="/clonos/bases/"

# By default ver=current version
over="${ver}"
oarch="${arch}"

if [ -z "${target_arch}" ]; then
	target_arch="${arch}"
	otarget_arch="${target_arch}"
fi

strpos --str="${ver}" --search="."

pos=$?
if [ ${pos} -eq 0 ]; then
	stable=1
else
	stable=0
fi

ostable="${stable}"
. ${buildconf}

init_supported_arch
init_target_arch
init_basedir
init_srcdir

LOCKFILE=${ftmpdir}/$( /sbin/md5 -qs ${MAKEOBJDIRPREFIX} ).lock

# make base lock
echo $$ > ${BASE_DIR_LOCKFILE}

# CBSD QUEUE
if [ -x "${moduledir}/cbsd_queue.d/cbsd_queue" ]; then
	[ "${cbsd_queue_name}" != "none" ] && cbsd_queue_sys cbsd_queue_name=${cbsd_queue_name} cmd=removebase id=base${ver}-${arch}-${stable} status=1
fi

if [ ! -d "${BASE_DIR}" ]; then
	unregister_base arch=${arch} ver=${ver} stable=${stable}

	# CBSD QUEUE
	if [ -x "${moduledir}/cbsd_queue.d/cbsd_queue" ]; then
		[ "${cbsd_queue_name}" != "none" ] && cbsd_queue_sys cbsd_queue_name=${cbsd_queue_name} cmd=removebase id=base${ver}-${arch}-${stable} status=2
	fi

	err 1 "${MAGENTA}No such dir: ${GREEN}${BASE_DIR}${NORMAL}"
fi

if  on_mounted "${BASE_DIR}"; then

	# CBSD QUEUE
	if [ -x "${moduledir}/cbsd_queue.d/cbsd_queue" ]; then
		[ "${cbsd_queue_name}" != "none" ] && cbsd_queue_sys cbsd_queue_name=${cbsd_queue_name} cmd=removebase id=base${ver}-${arch}-${stable} status=2
	fi

	err 1 "${MAGENTA}Current dir in use. Please unmount first ${GREEN}${BASE_DIR}${NORMAL}:\n$(/sbin/mount |grep ^${BASE_DIR})"
fi

makelock ${LOCKFILE} "cleanup_bases"
${CHFLAGS_CMD} -R noschg ${BASE_DIR}
/bin/rm -rf ${BASE_DIR}
unregister_base arch=${arch} ver=${ver} stable=${stable}

[ -r ${BASE_DIR_LOCKFILE} ] && /bin/rm -f ${BASE_DIR_LOCKFILE}

# CBSD QUEUE
if [ -x "${moduledir}/cbsd_queue.d/cbsd_queue" ]; then
	[ "${cbsd_queue_name}" != "none" ] && cbsd_queue_sys cbsd_queue_name=${cbsd_queue_name} cmd=removebase id=base${ver}-${arch}-${stable} status=2
fi
