X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~cjwatson/git?p=bin.git;a=blobdiff_plain;f=ubuntu-daily;h=43d56e76316f1f11d6a7ca0265ef60cad71563bf;hp=fed9db23310539219794de56e8a165317cde6455;hb=3dc97c2465315fa4952e9a2e23dd68f2982a723d;hpb=daf2ed2268f2f64564922339acd90d2cf1f7b583 diff --git a/ubuntu-daily b/ubuntu-daily index fed9db2..43d56e7 100755 --- a/ubuntu-daily +++ b/ubuntu-daily @@ -95,7 +95,7 @@ case $1 in esac case $1 in - install|alternate|server|addon|serveraddon|dvd) ;; + install|alternate|server|addon|serveraddon) ;; *) $HTTP || RSYNC=: ;; @@ -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