From 8425bc35e6f549e2066151ef900506f3bfc0449f Mon Sep 17 00:00:00 2001 From: Sofian Brabez Date: Tue, 20 Dec 2016 14:53:05 +0100 Subject: [PATCH] jail: Add -C (for clean) option in order to clean poudriere data when deleting a jail --- src/share/poudriere/jail.sh | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/share/poudriere/jail.sh b/src/share/poudriere/jail.sh index 63820e2f..5bd90fbd 100755 --- a/src/share/poudriere/jail.sh +++ b/src/share/poudriere/jail.sh @@ -64,6 +64,10 @@ Options: building for a different TARGET ARCH than the host. Only applies if TARGET_ARCH and HOST_ARCH are different. Will only be used if -m is svn*. +Options for -d: + -C clean -- Clean remaining data existing in poudriere data folder. + See poudriere(8) for more details. Can be one of: + all, logs, packages, wrkdirs Options for -s and -k: -p tree -- Specify which ports tree to start/stop the jail with. @@ -125,6 +129,28 @@ delete_jail() { cache_dir="${POUDRIERE_DATA}/cache/${JAILNAME}-*" rm -rf ${POUDRIERED}/jails/${JAILNAME} ${cache_dir} || : echo " done" + if [ "${CLEAN}" == "none" ]; then + return 0 + fi + msg_n "Cleaning ${JAILNAME} data..." + case ${CLEAN} in + all) + find ${POUDRIERE_DATA} -name "*${JAILNAME}*" -type d | xargs rm -rf || : + ;; + logs) + logs_dir="${POUDRIERE_DATA}/logs/bulk/${JAILNAME}-*" + rm -rf ${logs_dir} || : + ;; + packages) + pkgs_dir="${POUDRIERE_DATA}/packages/${JAILNAME}-*" + rm -rf ${pkgs_dir} || : + ;; + wrkdirs) + wrk_dir="${POUDRIERE_DATA}/wrkdirs/${JAILNAME}*" + rm -rf ${wrk_dir} || : + ;; + esac + echo " done" } cleanup_new_jail() { @@ -810,7 +836,7 @@ PTNAME=default SETNAME="" XDEV=0 -while getopts "iJ:j:v:a:z:m:nf:M:sdklqcip:r:ut:z:P:x" FLAG; do +while getopts "iJ:j:v:a:z:m:nf:M:sdklqcip:r:ut:z:P:xC:" FLAG; do case "${FLAG}" in i) INFO=1 @@ -854,6 +880,9 @@ while getopts "iJ:j:v:a:z:m:nf:M:sdklqcip:r:ut:z:P:x" FLAG; do c) CREATE=1 ;; + C) + CLEAN=${OPTARG} + ;; d) DELETE=1 ;; @@ -898,6 +927,7 @@ saved_argv="$@" shift $((OPTIND-1)) METHOD=${METHOD:-ftp} +CLEAN=${CLEAN:-none} if [ -n "${JAILNAME}" -a ${CREATE} -eq 0 ]; then _jget ARCH ${JAILNAME} arch 2>/dev/null || : _jget JAILFS ${JAILNAME} fs 2>/dev/null || : -- 2.11.0