summaryrefslogtreecommitdiff
path: root/classes/rm_work.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'classes/rm_work.bbclass')
-rw-r--r--classes/rm_work.bbclass38
1 files changed, 32 insertions, 6 deletions
diff --git a/classes/rm_work.bbclass b/classes/rm_work.bbclass
index 1b87004143..e6f3aa012e 100644
--- a/classes/rm_work.bbclass
+++ b/classes/rm_work.bbclass
@@ -6,17 +6,43 @@
# INHERIT += "rm_work"
#
+# Use the completion scheulder by default when rm_work is active
+# to try and reduce disk usage
+BB_SCHEDULER ?= "completion"
+
+RMWORK_ORIG_TASK := "${BB_DEFAULT_TASK}"
+BB_DEFAULT_TASK = "rm_work_all"
+
do_rm_work () {
cd ${WORKDIR}
for dir in *
do
- if [ `basename ${S}` = $dir ]; then
- rm -rf $dir/*
- elif [ $dir != 'temp' ]; then
- rm -rf $dir
+ if [ `basename ${dir}` = "temp" ]; then
+ echo "Not removing temp"
+ else
+ echo "Removing $dir" ; rm -rf $dir
fi
done
}
+addtask rm_work after do_${RMWORK_ORIG_TASK}
+
+do_rm_work_all () {
+ :
+}
+do_rm_work_all[recrdeptask] = "do_rm_work"
+addtask rm_work_all after do_rm_work
+
+
+addhandler rmwork_stampfixing_eventhandler
+python rmwork_stampfixing_eventhandler() {
+ if bb.event.getName(e) == "StampUpdate":
+ for (fn, task) in e.targets:
+ if task == 'rm_work_all':
+ continue
+ stamp = "%s.do_rm_work" % e.stampPrefix[fn]
+ if os.path.exists(stamp):
+ dir = "%s.*" % e.stampPrefix[fn]
+ bb.note("Removing stamps: " + dir)
+ os.system('rm -f '+ dir)
+}
-addtask rm_work before do_build
-addtask rm_work after do_populate_staging