commit: 880a1aa775fd7cc6890074b1baab43ef4b29c31c
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 21 05:27:34 2016 +0000
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon Mar 21 05:27:34 2016 +0000
URL: https://gitweb.gentoo.org/proj/releng.git/commit/?id=880a1aa7
catalyst-auto: add a preclean option to trim temp files
This makes it easier to cronjob things w/out needing manual cleanup
from time to time by people.
tools/catalyst-auto | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/tools/catalyst-auto b/tools/catalyst-auto
index 70755d5..a018dc9 100755
--- a/tools/catalyst-auto
+++ b/tools/catalyst-auto
@@ -24,6 +24,7 @@ config_files=()
verbose=0
keep_tmpdir=0
testing=0
+preclean=0
# Set pipefail so that run_cmd returns the right value in $?
set -o pipefail
@@ -41,6 +42,7 @@ Usage:
Options:
-c|--config Specifies the config file to use (required)
+ -C|--preclean Clean up loose artifacts from previous runs
-v|--verbose Send output of commands to console as well as log
-k|--keep-tmpdir Don't remove temp dir when build finishes
-t|--test Stop after mangling specs and copying files
@@ -119,6 +121,9 @@ do
-t|--test)
testing=1
;;
+ -C|--preclean)
+ preclean=1
+ ;;
-*)
usage "ERROR: You have specified an invalid option: ${a}"
exit 1
@@ -149,6 +154,12 @@ BUILD_SRCDIR_BASE=$(catalyst_var storedir)
TMPDIR=$(mktemp -d --tmpdir="${TMP_PATH:-/tmp}" catalyst-auto.XXXXXX)
DATESTAMP=$(date +%Y%m%d)
+# Nuke any previous tmpdirs to keep them from accumulating.
+if [[ ${preclean} -eq 1 ]]; then
+ rm -rf "${TMPDIR%.??????}".*
+ mkdir "${TMPDIR}"
+fi
+
if [ ${verbose} = 1 ]; then
echo "TMPDIR = ${TMPDIR}"
echo "DATESTAMP = ${DATESTAMP}"
@@ -225,6 +236,18 @@ if [ "${testing}" -eq 1 ]; then
exit
fi
+if [[ ${preclean} -eq 1 ]]; then
+ snapshot_cache=$(catalyst_var snapshot_cache)
+ if [[ -z ${snapshot_cache} ]]; then
+ echo "error: snapshot_cache not set in config file"
+ exit 1
+ fi
+ pushd "${BUILD_SRCDIR_BASE}" >/dev/null || exit 1
+ rm -rf --one-file-system \
+ kerncache packages snapshots tmp "${snapshot_cache}"/*
+ popd >/dev/null
+fi
+
# Create snapshot
if ! run_cmd "catalyst -c ${CATALYST_CONFIG} -s ${DATESTAMP}"
"${TMPDIR}/log/snapshot.log"; then
send_email "Catalyst build error - snapshot" "" "${TMPDIR}/log/snapshot.log"