#!/usr/local/bin/cbsd
#v10.0.4
CBSDMODULE="sys"
MYARG=""
MYOPTARG="arch destdir jname target_arch ver"
MYDESC="delete obsolete directories/files in bases/jails"
ADDHELP="

${H3_COLOR}Description${N0_COLOR}:

Delete obsolete directories/files in basejail or jail 
This command is equivalent for:

make -C /usr/src delete-old delete-old-libs for system environment.

${H3_COLOR}Options${N0_COLOR}:

 ${N2_COLOR}arch=${N0_COLOR}        - <name>, build non-native architectures.
 ${N2_COLOR}destdir${N0_COLOR}      - <path> - alternative DESTDIR= path instead of ~cbsd/basejail/.
 ${N2_COLOR}jname${N0_COLOR}        - <jailname> if you want to delete file in baserw=1 jail.
 ${N2_COLOR}ver=${N0_COLOR}         - set version: '13.0', '13.1';
                when version without minor version: e.g:
               '13' or '12' - you will receive RELENG (stable=1), not release.

${H3_COLOR}Examples${N0_COLOR}:

 # cbsd delete-old-libs
 # cbsd delete-old-libs jname=myjail

${H3_COLOR}See also${N0_COLOR}:

  cbsd buildworld --help
  cbsd bases --help
  cbsd world --help

"

. ${subrdir}/nc.subr
readconf buildworld.conf
. ${subrdir}/universe.subr
. ${cbsdinit}

over="${ver}"
oarch="${arch}"

if [ -n "${jname}" ]; then
	. ${subrdir}/rcconf.subr
	[ $? -eq 1 ] && err 1 "${N1_COLOR}${CBSD_APP} error: no such jail: ${N2_COLOR}${jname}${N0_COLOR}"
	[ "${baserw}" != "1" ] && err 1 "${N1_COLOR}${CBSD_APP} error: jail is baserw=0: ${N2_COLOR}${jname}${N0_COLOR}"
	BASE_DIR="${data}"
fi


# By default ver=current version
. ${subrdir}/build.subr

init_target_arch
init_srcdir

[ ! -r ${SRC_DIR}/Makefile ] && log_err 1 "${N1_COLOR}${CBSD_APP}: source directory must exist, no such src dir: ${N2_COLOR}${SRC_DIR}${N0_COLOR}"

if [ -z "${jname}" ]; then
	if [ -z "${destdir}" ]; then
		init_supported_arch
		init_basedir
	else
		BASE_DIR="${destdir}"
	fi
fi

[ ! -d "${BASE_DIR}" ] && err 1 "${N1_COLOR}${CBSD_APP} error: No such dir: ${N2_COLOR}${BASE_DIR}${N0_COLOR}"
cbsdlogger NOTICE ${CBSD_APP}: make -C ${SRC_DIR} DESTDIR="${BASE_DIR}" delete-old delete-old-libs
yes | make -C ${SRC_DIR} DESTDIR="${BASE_DIR}" delete-old delete-old-libs

exit 0
