summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio 'Flameeyes' Pettenò <flameeyes@gmail.com>2010-04-24 12:50:00 +0200
committerDiego Elio 'Flameeyes' Pettenò <flameeyes@gmail.com>2010-04-24 12:50:00 +0200
commit7f8e5f857be64fb00e38fe79b5b5c552f27a4840 (patch)
tree92fbd2d5c8bd452476e84d81482493e227b56816
parentRename tweet_me to dent_me. (diff)
downloadflameeyes-tinderbox-7f8e5f857be64fb00e38fe79b5b5c552f27a4840.tar.gz
flameeyes-tinderbox-7f8e5f857be64fb00e38fe79b5b5c552f27a4840.tar.bz2
flameeyes-tinderbox-7f8e5f857be64fb00e38fe79b5b5c552f27a4840.zip
Add support for re-generating the list continuously when restarting.
This generates a new full list, starts a fetch process to download all the packages, and creates a new synthesized list excluding that stuff that was merged already in the mean time (see http://blog.flameeyes.eu/2010/04/18/squeezing-more-performance-out-of-the-tinderbox ) for more details about the idea. This still require manual intervention to set the head of the queue before restarting.
-rwxr-xr-xtinderbox-restart.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/tinderbox-restart.sh b/tinderbox-restart.sh
index ac81023..2e18abe 100755
--- a/tinderbox-restart.sh
+++ b/tinderbox-restart.sh
@@ -1,5 +1,7 @@
#!/bin/sh
+mkdir -p /var/cache/tinderbox
+
reset_emergelog() {
rm -f /var/log/emerge.log
}
@@ -50,3 +52,17 @@ fi
emerge -u1 glibc bti screen avahi nfs-utils gentoolkit java-dep-check portage-utils
reset_emergelog
+
+# Generate a new complete list, this will also produce the list of new
+# dependencies to satisfy.
+./tinderbox.py > /var/cache/tinderbox/list-complete
+
+# Launch the fetch operation in background, saving the log (of both
+# good results and failures).
+nohup xargs -a /var/cache/tinderbox/list-complete emerge -fO --keep-going &> /var/log/tinderbox-fetch.log &
+
+# Now replace the old queue with a new one, skipping everything that
+# we wouldn't otherwise be merging (packages masked, removed, and
+# similar).
+mv /var/cache/tinderbox/queue /var/cache/tinderbox/queue.old
+sort /var/cache/tinderbox/queue.old /var/cache/tinderbox/list-complete | uniq -d | sort -R > /var/cache/tinderbox/queue