diff options
Diffstat (limited to 'classes/rm_work.bbclass')
| -rw-r--r-- | classes/rm_work.bbclass | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/classes/rm_work.bbclass b/classes/rm_work.bbclass index 8569148212..a53d12baf3 100644 --- a/classes/rm_work.bbclass +++ b/classes/rm_work.bbclass @@ -6,6 +6,10 @@ # 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" @@ -13,10 +17,10 @@ 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 $dir -rf fi done } @@ -27,3 +31,20 @@ 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) + + return NotHandled +} + |
