X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~cjwatson/git?a=blobdiff_plain;f=ubuntu-daily;h=43d56e76316f1f11d6a7ca0265ef60cad71563bf;hb=b238980e7533a97a6e14c1fdbc7f4da91e924001;hp=cadbc517970a83747dcab0ba853cf4b1ea3f00ee;hpb=7ce84f545e01a1567235e8bef09b5e92b1bd04d0;p=bin.git diff --git a/ubuntu-daily b/ubuntu-daily index cadbc51..43d56e7 100755 --- a/ubuntu-daily +++ b/ubuntu-daily @@ -114,16 +114,49 @@ else sed -i "s/=$DIST-$1-$2/=$PROJECT-$DIST-$1-$2/g" "$LOCAL.jigdo" fi rsync -avP "$REMOTE.template" "$LOCAL.template" + + mkdir -p old + EXISTING=false + MOUNTS= + + do_mount () { + mkdir -p "old/$1" + MOUNTS="${MOUNTS:+$MOUNTS }$1" + sudo mount -o loop,ro "$1" "old/$1" + } + + cleanup () { + trap - EXIT HUP INT QUIT TERM + + local mount + + for mount in $MOUNTS; do + sudo umount "old/$mount" + rmdir -p --ignore-fail-on-non-empty "old/$mount" + done + + if $EXISTING; then + rm -f "$LOCAL.iso.old" + fi + } + trap cleanup EXIT HUP INT QUIT TERM + if [ -e "$LOCAL.iso" ]; then EXISTING=: mv "$LOCAL.iso" "$LOCAL.iso.old" - mkdir -p "old-$2" - sudo mount -o loop,ro "$LOCAL.iso.old" "old-$2" - fi - ionice -c2 -n7 jigdo-lite "$LOCAL.jigdo" - if $EXISTING; then - sudo umount "old-$2" || true - rm -f "$LOCAL.iso.old" + do_mount "$LOCAL.iso.old" fi + + for iso in *"$DIST"-*.iso; do + case $iso in + *-install-*|*-alternate-*|*-server-*|*-addon-*|*-serveraddon-*) ;; + *) + continue + ;; + esac + do_mount "$iso" + done + + ionice -c2 -n7 jigdo-lite --scan "$PWD/old" "$LOCAL.jigdo" fi